[jboss-osgi-commits] JBoss-OSGI SVN: r91345 - in projects/jboss-osgi/trunk: reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container and 6 other directories.

jboss-osgi-commits at lists.jboss.org jboss-osgi-commits at lists.jboss.org
Thu Jul 16 10:16:12 EDT 2009


Author: thomas.diesler at jboss.com
Date: 2009-07-16 10:16:10 -0400 (Thu, 16 Jul 2009)
New Revision: 91345

Added:
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAutoExportModes.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TNull.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TProp.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TProps.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TValue.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/ReifiedType.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListMetadata.java
Removed:
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAutoExportModes.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TComparator.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tcollection.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tkey.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tmap.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TmapEntry.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tnull.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tprop.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tprops.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TtypedCollection.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tvalue.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/RefListMetadata.java
Modified:
   projects/jboss-osgi/trunk/eclipse/eclipse.code.style.xml
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/AbstractManager.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/BlueprintContainerImpl.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/GTargetComponent.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/GValue.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TArgument.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAvailability.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TBean.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TBlueprint.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TComponent.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TInterfaces.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TProperty.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TRef.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TReference.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TReferenceList.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TReferenceListener.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TRegistrationListener.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TService.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceProperties.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServicePropertyEntry.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceReference.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceUse.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TTypeConverters.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/BlueprintMetadata.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ComponentMetadataImpl.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ReferenceMetadataImpl.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceMetadataImpl.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/BlueprintContainer.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/BlueprintEvent.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/BlueprintListener.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/ComponentDefinitionException.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/Converter.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/EventConstants.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/NoSuchComponentException.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/ServiceUnavailableException.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/package.html
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/packageinfo
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/BeanArgument.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/BeanProperty.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/CollectionMetadata.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/IdRefMetadata.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/MapEntry.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/MapMetadata.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/Metadata.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/NonNullMetadata.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/NullMetadata.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/PropsMetadata.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/RefMetadata.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListener.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ReferenceMetadata.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListener.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ServiceMetadata.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ServiceReferenceMetadata.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/Target.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ValueMetadata.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/package.html
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/packageinfo
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/testsuite/src/test/java/org/jboss/test/osgi/blueprint/container/BlueprintContainerTestCase.java
   projects/jboss-osgi/trunk/reactor/bundles/blueprint/testsuite/src/test/resources/parser/blueprint-all-elements.xml
Log:
Update to latest BP API. Cleanup parser model.

Modified: projects/jboss-osgi/trunk/eclipse/eclipse.code.style.xml
===================================================================
--- projects/jboss-osgi/trunk/eclipse/eclipse.code.style.xml	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/eclipse/eclipse.code.style.xml	2009-07-16 14:16:10 UTC (rev 91345)
@@ -51,6 +51,7 @@
 <setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
 <setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="false"/>
 <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/>
 <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
 <setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
 <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
@@ -185,7 +186,7 @@
 <setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
 <setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="insert"/>
 <setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
-<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="false"/>
 <setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="168"/>
 <setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
 <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
@@ -201,6 +202,7 @@
 <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
 <setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
 <setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/>
 <setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
 <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
 <setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/AbstractManager.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/AbstractManager.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/AbstractManager.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -76,9 +76,9 @@
       return component;
    }
    
-   public int getInitialization()
+   public int getActivation()
    {
-      return component.getInitialization();
+      return component.getActivation();
    }
    
    public void install()

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/BlueprintContainerImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/BlueprintContainerImpl.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/container/BlueprintContainerImpl.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -23,8 +23,6 @@
 
 //$Id: BlueprintContextImpl.java 90313 2009-06-17 10:37:51Z thomas.diesler at jboss.com $
 
-import static org.osgi.service.blueprint.reflect.ComponentMetadata.INITIALIZATION_EAGER;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -127,11 +125,6 @@
       return bundle.getBundleContext();
    }
 
-   public int getCompliance()
-   {
-      return COMPLIANCE_STRICT;
-   }
-
    public Set<String> getComponentIds()
    {
       return Collections.unmodifiableSet(managers.keySet());
@@ -209,7 +202,7 @@
       // Activated the eager managers
       for (AbstractManager manager : managers.values())
       {
-         if (manager.getInitialization() == INITIALIZATION_EAGER)
+         if (manager.getActivation() == ComponentMetadata.ACTIVATION_EAGER)
             manager.activate();
       }
    }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/GTargetComponent.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/GTargetComponent.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/GTargetComponent.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -26,23 +26,44 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
 import org.jboss.osgi.blueprint.BlueprintContext;
-import org.jboss.xb.annotations.JBossXmlConstants;
-import org.jboss.xb.annotations.JBossXmlModelGroup;
 
 /**
+ * A target component is one that can be a target for a
+ * listener, registration-listener or service elements.
+ * This is used in contexts where the requirement is a single
+ * provided object that will implement a particular interface.
+ * The provided object is obtained either from a <ref> element
+ * or an inlined <bean> or <reference>.
+ * 
+ * <xsd:group name="GtargetComponent">
+ *  <xsd:choice>
+ *    <xsd:element name="bean" type="Tinlined-bean" />
+ *    <xsd:element name="reference" type="Tinlined-reference" />
+ *    <xsd:element name="ref" type="Tref" />
+ *    <xsd:any namespace="##other" processContents="strict" />
+ *  </xsd:choice>
+ * </xsd:group>
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
  */
- at XmlType(name = "GtargetComponent", namespace = BlueprintContext.XMLNS_BLUEPRINT)
- at JBossXmlModelGroup(kind = JBossXmlConstants.MODEL_GROUP_CHOICE)
-public class GTargetComponent
+
+// [JBXB-218] Requires property order even when maked as choice
+// https://jira.jboss.org/jira/browse/JBXB-218
+//@XmlType(name = "GtargetComponent", namespace = BlueprintContext.XMLNS_BLUEPRINT)
+//@JBossXmlModelGroup(kind = JBossXmlConstants.MODEL_GROUP_CHOICE)
+
+ at XmlType(name = "GtargetComponent", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "bean", "reference", "refElement" })
+public class GTargetComponent extends TComponent
 {
    protected TBean bean;
    protected TReference reference;
+   protected TRef refElement;
    protected List<Object> any;
-   protected String ref;
 
    public TBean getBean()
    {
@@ -64,23 +85,22 @@
       this.reference = value;
    }
 
-   public List<Object> getAny()
+   @XmlElement(name = "ref")
+   public TRef getRefElement()
    {
-      if (any == null)
-      {
-         any = new ArrayList<Object>();
-      }
-      return this.any;
+      return refElement;
    }
 
-   @XmlAttribute
-   public String getRef()
+   public void setRefElement(TRef value)
    {
-      return ref;
+      this.refElement = value;
    }
 
-   public void setRef(String value)
+   public List<Object> getAny()
    {
-      this.ref = value;
+      if (any == null)
+         any = new ArrayList<Object>();
+
+      return this.any;
    }
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/GValue.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/GValue.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/GValue.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -23,419 +23,91 @@
 
 // $Id$
 
-import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
 import javax.xml.bind.annotation.XmlType;
 
 import org.jboss.osgi.blueprint.BlueprintContext;
 
 /**
+ * The set of "value" types that can be used in any place a value
+ * can be specified.  This set includes the <ref> and <idref> elements, any of the
+ * component types (<bean>, <service>, etc.) as inline components, the
+ * generic <value> element for types sourced from string values, any of the
+ * collection types (<set>, <list>, <array>, <map>, <props>), and the
+ * <null> type to inject a null value.
+ *  
+ * <xsd:group name="Gvalue">
+ *  <xsd:choice>
+ *    <xsd:group ref="GnonNullValue" />
+ *    <xsd:element name="null" type="Tnull" />
+ *  </xsd:choice>
+ * </xsd:group>
+ * 
+ * <xsd:group name="GnonNullValue">
+ *  <xsd:choice>
+ *    <xsd:group ref="GallComponents" />
+ *    <xsd:element name="idref" type="Tref" />
+ *    <xsd:element name="value" type="Tvalue" />
+ *    <xsd:element name="list" type="Tcollection" />
+ *    <xsd:element name="set" type="Tcollection" />
+ *    <xsd:element name="map" type="Tmap" />
+ *    <xsd:element name="array" type="Tcollection" />
+ *    <xsd:element name="props" type="Tprops" />
+ *  </xsd:choice>
+ * </xsd:group>
+ *
+ * <xsd:group name="GallComponents">
+ *  <xsd:choice>
+ *    <xsd:element name="service" type="Tinlined-service" />
+ *    <xsd:element name="reference-list" type="Tinlined-reference-list" />
+ *    <xsd:group ref="GtargetComponent" />
+ *  </xsd:choice>
+ * </xsd:group>
+ *
+ * <xsd:group name="GtargetComponent">
+ *  <xsd:choice>
+ *    <xsd:element name="bean" type="Tinlined-bean" />
+ *    <xsd:element name="reference" type="Tinlined-reference" />
+ *    <xsd:element name="ref" type="Tref" />
+ *    <xsd:any namespace="##other" processContents="strict" />
+ *  </xsd:choice>
+ * </xsd:group>
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
  */
- at XmlType(name = "Tproperty", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "description" })
+ at XmlType(name = "Gvalue", namespace = BlueprintContext.XMLNS_BLUEPRINT)
 public class GValue
 {
-   protected String description;
-   protected TService service;
-   protected TReferenceList refList;
-   protected TReferenceList refSet;
-   protected TBean bean;
-   protected TReference reference;
-   protected TRef refFIXME;
-   protected List<Object> any;
-   protected TRef idref;
-   protected Tvalue value;
-   protected Tcollection list;
-   protected Tcollection set;
-   protected Tmap map;
-   protected Tcollection array;
-   protected Tprops props;
-   protected Tnull _null;
-   protected String name;
-   protected String ref;
-   protected String valueFIXME;
+   protected Object valueElement;
 
-   public String getDescription()
+   @XmlElements( { 
+      @XmlElement(name = "service", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TService.class),
+      @XmlElement(name = "reference-list", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TReferenceList.class), 
+      @XmlElement(name = "bean", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TBean.class), 
+      @XmlElement(name = "reference", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TReference.class), 
+      @XmlElement(name = "ref", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TRef.class), 
+      @XmlElement(name = "idref", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = String.class), 
+      @XmlElement(name = "value", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TValue.class), 
+      @XmlElement(name = "list", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = List.class), 
+      @XmlElement(name = "set", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = Set.class), 
+      @XmlElement(name = "map", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = Map.class), 
+      @XmlElement(name = "array", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = List.class), 
+      @XmlElement(name = "props", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TProps.class), 
+      @XmlElement(name = "null", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = List.class) 
+      })
+   public Object getValueElement()
    {
-      return description;
+      return valueElement;
    }
 
-   public void setDescription(String value)
+   public void setValueElement(Object valueElement)
    {
-      this.description = value;
+      this.valueElement = valueElement;
    }
-
-   public TService getService()
-   {
-      return service;
-   }
-
-   public void setService(TService value)
-   {
-      this.service = value;
-   }
-
-   public TReferenceList getRefList()
-   {
-      return refList;
-   }
-
-   public void setRefList(TReferenceList value)
-   {
-      this.refList = value;
-   }
-
-   public TReferenceList getRefSet()
-   {
-      return refSet;
-   }
-
-   /**
-    * Sets the value of the refSet property.
-    * 
-    * @param value allowed object is {@link TReferenceList }
-    * 
-    */
-   public void setRefSet(TReferenceList value)
-   {
-      this.refSet = value;
-   }
-
-   /**
-    * Gets the value of the bean property.
-    * 
-    * @return possible object is {@link TBean }
-    * 
-    */
-   public TBean getBean()
-   {
-      return bean;
-   }
-
-   /**
-    * Sets the value of the bean property.
-    * 
-    * @param value allowed object is {@link TBean }
-    * 
-    */
-   public void setBean(TBean value)
-   {
-      this.bean = value;
-   }
-
-   /**
-    * Gets the value of the reference property.
-    * 
-    * @return possible object is {@link TReference }
-    * 
-    */
-   public TReference getReference()
-   {
-      return reference;
-   }
-
-   /**
-    * Sets the value of the reference property.
-    * 
-    * @param value allowed object is {@link TReference }
-    * 
-    */
-   public void setReference(TReference value)
-   {
-      this.reference = value;
-   }
-
-   /**
-    * Gets the value of the refFIXME property.
-    * 
-    * @return possible object is {@link TRef }
-    * 
-    */
-   public TRef getRefFIXME()
-   {
-      return refFIXME;
-   }
-
-   /**
-    * Sets the value of the refFIXME property.
-    * 
-    * @param value allowed object is {@link TRef }
-    * 
-    */
-   public void setRefFIXME(TRef value)
-   {
-      this.refFIXME = value;
-   }
-
-   /**
-    * Gets the value of the any property.
-    * 
-    * <p>
-    * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the returned list will be present inside the
-    * JAXB object. This is why there is not a <CODE>set</CODE> method for the any property.
-    * 
-    * <p>
-    * For example, to add a new item, do as follows:
-    * 
-    * <pre>
-    * getAny().add(newItem);
-    * </pre>
-    * 
-    * 
-    * <p>
-    * Objects of the following type(s) are allowed in the list {@link Object }
-    * 
-    * 
-    */
-   public List<Object> getAny()
-   {
-      if (any == null)
-      {
-         any = new ArrayList<Object>();
-      }
-      return this.any;
-   }
-
-   /**
-    * Gets the value of the idref property.
-    * 
-    * @return possible object is {@link TRef }
-    * 
-    */
-   public TRef getIdref()
-   {
-      return idref;
-   }
-
-   /**
-    * Sets the value of the idref property.
-    * 
-    * @param value allowed object is {@link TRef }
-    * 
-    */
-   public void setIdref(TRef value)
-   {
-      this.idref = value;
-   }
-
-   /**
-    * Gets the value of the value property.
-    * 
-    * @return possible object is {@link Tvalue }
-    * 
-    */
-   public Tvalue getValue()
-   {
-      return value;
-   }
-
-   /**
-    * Sets the value of the value property.
-    * 
-    * @param value allowed object is {@link Tvalue }
-    * 
-    */
-   public void setValue(Tvalue value)
-   {
-      this.value = value;
-   }
-
-   /**
-    * Gets the value of the list property.
-    * 
-    * @return possible object is {@link Tcollection }
-    * 
-    */
-   public Tcollection getList()
-   {
-      return list;
-   }
-
-   /**
-    * Sets the value of the list property.
-    * 
-    * @param value allowed object is {@link Tcollection }
-    * 
-    */
-   public void setList(Tcollection value)
-   {
-      this.list = value;
-   }
-
-   /**
-    * Gets the value of the set property.
-    * 
-    * @return possible object is {@link Tcollection }
-    * 
-    */
-   public Tcollection getSet()
-   {
-      return set;
-   }
-
-   /**
-    * Sets the value of the set property.
-    * 
-    * @param value allowed object is {@link Tcollection }
-    * 
-    */
-   public void setSet(Tcollection value)
-   {
-      this.set = value;
-   }
-
-   /**
-    * Gets the value of the map property.
-    * 
-    * @return possible object is {@link Tmap }
-    * 
-    */
-   public Tmap getMap()
-   {
-      return map;
-   }
-
-   /**
-    * Sets the value of the map property.
-    * 
-    * @param value allowed object is {@link Tmap }
-    * 
-    */
-   public void setMap(Tmap value)
-   {
-      this.map = value;
-   }
-
-   /**
-    * Gets the value of the array property.
-    * 
-    * @return possible object is {@link Tcollection }
-    * 
-    */
-   public Tcollection getArray()
-   {
-      return array;
-   }
-
-   /**
-    * Sets the value of the array property.
-    * 
-    * @param value allowed object is {@link Tcollection }
-    * 
-    */
-   public void setArray(Tcollection value)
-   {
-      this.array = value;
-   }
-
-   /**
-    * Gets the value of the props property.
-    * 
-    * @return possible object is {@link Tprops }
-    * 
-    */
-   public Tprops getProps()
-   {
-      return props;
-   }
-
-   /**
-    * Sets the value of the props property.
-    * 
-    * @param value allowed object is {@link Tprops }
-    * 
-    */
-   public void setProps(Tprops value)
-   {
-      this.props = value;
-   }
-
-   /**
-    * Gets the value of the null property.
-    * 
-    * @return possible object is {@link Tnull }
-    * 
-    */
-   public Tnull getNull()
-   {
-      return _null;
-   }
-
-   /**
-    * Sets the value of the null property.
-    * 
-    * @param value allowed object is {@link Tnull }
-    * 
-    */
-   public void setNull(Tnull value)
-   {
-      this._null = value;
-   }
-
-   /**
-    * Gets the value of the name property.
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
-   public String getName()
-   {
-      return name;
-   }
-
-   /**
-    * Sets the value of the name property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setName(String value)
-   {
-      this.name = value;
-   }
-
-   /**
-    * Gets the value of the ref property.
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
-   public String getRef()
-   {
-      return ref;
-   }
-
-   /**
-    * Sets the value of the ref property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setRef(String value)
-   {
-      this.ref = value;
-   }
-
-   /**
-    * Gets the value of the valueFIXME property.
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
-   public String getValueFIXME()
-   {
-      return valueFIXME;
-   }
-
-   /**
-    * Sets the value of the valueFIXME property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setValueFIXME(String value)
-   {
-      this.valueFIXME = value;
-   }
-
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TArgument.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TArgument.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TArgument.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -24,518 +24,97 @@
 // $Id$
 
 import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.List;
 
 import javax.xml.bind.annotation.XmlType;
 
 import org.jboss.osgi.blueprint.BlueprintContext;
 
-
 /**
+ *  An argument used to create an object defined by a <bean>
+ *  component.  The <argument> elements are the arguments for the
+ *  bean class constructor or passed to the bean factory method.
+ *  
+ *  The type, if specified, is used to disambiguate the constructor
+ *  or method signature.  Arguments may also be matched up with
+ *  arguments by explicitly specifying the index position.  If the
+ *  index is used, then all <argument> elements for the bean must
+ *  also specify the index.
+ *  
+ *  The value and ref attributes are convenience shortcuts to make
+ *  the <argument> tag easier to code.  A fuller set of injected
+ *  values and types can be specified using one of the "value"
+ *  type elements.
+ *  
+ *  <xsd:complexType name="Targument">
+ *   <xsd:sequence>
+ *    <xsd:element name="description" type="Tdescription" minOccurs="0" />
+ *    <xsd:group ref="Gvalue" minOccurs="0" />
+ *   </xsd:sequence>
+ *   <xsd:attribute name="index" type="xsd:nonNegativeInteger" />
+ *   <xsd:attribute name="type" type="Ttype" />
+ *   <xsd:attribute name="ref" type="Tidref" />
+ *   <xsd:attribute name="value" type="TstringValue" />
+ * </xsd:complexType>
  * 
- * An argument used to create an object defined by a <bean> component. The <argument> elements are the arguments for the bean class constructor or passed to the bean
- * factory method.
- * 
- * The type, if specified, is used to disambiguate the constructor or method signature. Arguments may also be matched up with arguments by explicitly specifying the
- * index position. If the index is used, then all <argument> elements for the bean must also specify the index.
- * 
- * The value and ref attributes are convenience shortcuts to make the <argument> tag easier to code. A fuller set of injected values and types can be specified using
- * one of the "value" type elements.
- * 
- * <p>
- * Java class for Targument complex type.
- * <p>
- * The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType name=&quot;Targument&quot;&gt;
- *   &lt;complexContent&gt;
- *     &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt;
- *       &lt;sequence&gt;
- *         &lt;element name=&quot;description&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}String&quot; minOccurs=&quot;0&quot;/&gt;
- *         &lt;group ref=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}value&quot;/&gt;
- *       &lt;/sequence&gt;
- *       &lt;attribute name=&quot;index&quot; type=&quot;{http://www.w3.org/2001/XMLSchema}nonNegativeInteger&quot; /&gt;
- *       &lt;attribute name=&quot;type&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}Tclass&quot; /&gt;
- *       &lt;attribute name=&quot;ref&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}Tidref&quot; /&gt;
- *       &lt;attribute name=&quot;valueFIXME&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}TstringValue&quot; /&gt;
- *     &lt;/restriction&gt;
- *   &lt;/complexContent&gt;
- * &lt;/complexType&gt;
- * </pre>
- * 
- * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
  */
- at XmlType(name = "Targument", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "description" })
-public class TArgument
+ at XmlType(name = "Targument", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "description", "valueElement" })
+public class TArgument extends GValue
 {
    protected String description;
-   protected TService service;
-   protected TReferenceList refList;
-   protected TReferenceList refSet;
-   protected TBean bean;
-   protected TReference reference;
-   protected TRef refFIXME;
-   protected List<Object> any;
-   protected TRef idref;
-   protected Tvalue value;
-   protected Tcollection list;
-   protected Tcollection set;
-   protected Tmap map;
-   protected Tcollection array;
-   protected Tprops props;
-   protected Tnull _null;
    protected BigInteger index;
    protected String type;
    protected String ref;
-   protected String valueFIXME;
+   protected String value;
 
-   /**
-    * Gets the value of the description property.
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
    public String getDescription()
    {
       return description;
    }
 
-   /**
-    * Sets the value of the description property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setDescription(String value)
+   public void setDescription(String description)
    {
-      this.description = value;
+      this.description = description;
    }
 
-   /**
-    * Gets the value of the service property.
-    * 
-    * @return possible object is {@link TService }
-    * 
-    */
-   public TService getService()
-   {
-      return service;
-   }
-
-   /**
-    * Sets the value of the service property.
-    * 
-    * @param value allowed object is {@link TService }
-    * 
-    */
-   public void setService(TService value)
-   {
-      this.service = value;
-   }
-
-   /**
-    * Gets the value of the refList property.
-    * 
-    * @return possible object is {@link TReferenceList }
-    * 
-    */
-   public TReferenceList getRefList()
-   {
-      return refList;
-   }
-
-   /**
-    * Sets the value of the refList property.
-    * 
-    * @param value allowed object is {@link TReferenceList }
-    * 
-    */
-   public void setRefList(TReferenceList value)
-   {
-      this.refList = value;
-   }
-
-   /**
-    * Gets the value of the refSet property.
-    * 
-    * @return possible object is {@link TReferenceList }
-    * 
-    */
-   public TReferenceList getRefSet()
-   {
-      return refSet;
-   }
-
-   /**
-    * Sets the value of the refSet property.
-    * 
-    * @param value allowed object is {@link TReferenceList }
-    * 
-    */
-   public void setRefSet(TReferenceList value)
-   {
-      this.refSet = value;
-   }
-
-   /**
-    * Gets the value of the bean property.
-    * 
-    * @return possible object is {@link TBean }
-    * 
-    */
-   public TBean getBean()
-   {
-      return bean;
-   }
-
-   /**
-    * Sets the value of the bean property.
-    * 
-    * @param value allowed object is {@link TBean }
-    * 
-    */
-   public void setBean(TBean value)
-   {
-      this.bean = value;
-   }
-
-   /**
-    * Gets the value of the reference property.
-    * 
-    * @return possible object is {@link TReference }
-    * 
-    */
-   public TReference getReference()
-   {
-      return reference;
-   }
-
-   /**
-    * Sets the value of the reference property.
-    * 
-    * @param value allowed object is {@link TReference }
-    * 
-    */
-   public void setReference(TReference value)
-   {
-      this.reference = value;
-   }
-
-   /**
-    * Gets the value of the refFIXME property.
-    * 
-    * @return possible object is {@link TRef }
-    * 
-    */
-   public TRef getRefFIXME()
-   {
-      return refFIXME;
-   }
-
-   /**
-    * Sets the value of the refFIXME property.
-    * 
-    * @param value allowed object is {@link TRef }
-    * 
-    */
-   public void setRefFIXME(TRef value)
-   {
-      this.refFIXME = value;
-   }
-
-   /**
-    * Gets the value of the any property.
-    * 
-    * <p>
-    * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the returned list will be present inside the
-    * JAXB object. This is why there is not a <CODE>set</CODE> method for the any property.
-    * 
-    * <p>
-    * For example, to add a new item, do as follows:
-    * 
-    * <pre>
-    * getAny().add(newItem);
-    * </pre>
-    * 
-    * 
-    * <p>
-    * Objects of the following type(s) are allowed in the list {@link Object }
-    * 
-    * 
-    */
-   public List<Object> getAny()
-   {
-      if (any == null)
-      {
-         any = new ArrayList<Object>();
-      }
-      return this.any;
-   }
-
-   /**
-    * Gets the value of the idref property.
-    * 
-    * @return possible object is {@link TRef }
-    * 
-    */
-   public TRef getIdref()
-   {
-      return idref;
-   }
-
-   /**
-    * Sets the value of the idref property.
-    * 
-    * @param value allowed object is {@link TRef }
-    * 
-    */
-   public void setIdref(TRef value)
-   {
-      this.idref = value;
-   }
-
-   /**
-    * Gets the value of the value property.
-    * 
-    * @return possible object is {@link Tvalue }
-    * 
-    */
-   public Tvalue getValue()
-   {
-      return value;
-   }
-
-   /**
-    * Sets the value of the value property.
-    * 
-    * @param value allowed object is {@link Tvalue }
-    * 
-    */
-   public void setValue(Tvalue value)
-   {
-      this.value = value;
-   }
-
-   /**
-    * Gets the value of the list property.
-    * 
-    * @return possible object is {@link Tcollection }
-    * 
-    */
-   public Tcollection getList()
-   {
-      return list;
-   }
-
-   /**
-    * Sets the value of the list property.
-    * 
-    * @param value allowed object is {@link Tcollection }
-    * 
-    */
-   public void setList(Tcollection value)
-   {
-      this.list = value;
-   }
-
-   /**
-    * Gets the value of the set property.
-    * 
-    * @return possible object is {@link Tcollection }
-    * 
-    */
-   public Tcollection getSet()
-   {
-      return set;
-   }
-
-   /**
-    * Sets the value of the set property.
-    * 
-    * @param value allowed object is {@link Tcollection }
-    * 
-    */
-   public void setSet(Tcollection value)
-   {
-      this.set = value;
-   }
-
-   /**
-    * Gets the value of the map property.
-    * 
-    * @return possible object is {@link Tmap }
-    * 
-    */
-   public Tmap getMap()
-   {
-      return map;
-   }
-
-   /**
-    * Sets the value of the map property.
-    * 
-    * @param value allowed object is {@link Tmap }
-    * 
-    */
-   public void setMap(Tmap value)
-   {
-      this.map = value;
-   }
-
-   /**
-    * Gets the value of the array property.
-    * 
-    * @return possible object is {@link Tcollection }
-    * 
-    */
-   public Tcollection getArray()
-   {
-      return array;
-   }
-
-   /**
-    * Sets the value of the array property.
-    * 
-    * @param value allowed object is {@link Tcollection }
-    * 
-    */
-   public void setArray(Tcollection value)
-   {
-      this.array = value;
-   }
-
-   /**
-    * Gets the value of the props property.
-    * 
-    * @return possible object is {@link Tprops }
-    * 
-    */
-   public Tprops getProps()
-   {
-      return props;
-   }
-
-   /**
-    * Sets the value of the props property.
-    * 
-    * @param value allowed object is {@link Tprops }
-    * 
-    */
-   public void setProps(Tprops value)
-   {
-      this.props = value;
-   }
-
-   /**
-    * Gets the value of the null property.
-    * 
-    * @return possible object is {@link Tnull }
-    * 
-    */
-   public Tnull getNull()
-   {
-      return _null;
-   }
-
-   /**
-    * Sets the value of the null property.
-    * 
-    * @param value allowed object is {@link Tnull }
-    * 
-    */
-   public void setNull(Tnull value)
-   {
-      this._null = value;
-   }
-
-   /**
-    * Gets the value of the index property.
-    * 
-    * @return possible object is {@link BigInteger }
-    * 
-    */
    public BigInteger getIndex()
    {
       return index;
    }
 
-   /**
-    * Sets the value of the index property.
-    * 
-    * @param value allowed object is {@link BigInteger }
-    * 
-    */
-   public void setIndex(BigInteger value)
+   public void setIndex(BigInteger index)
    {
-      this.index = value;
+      this.index = index;
    }
 
-   /**
-    * Gets the value of the type property.
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
    public String getType()
    {
       return type;
    }
 
-   /**
-    * Sets the value of the type property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setType(String value)
+   public void setType(String type)
    {
-      this.type = value;
+      this.type = type;
    }
 
-   /**
-    * Gets the value of the ref property.
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
    public String getRef()
    {
       return ref;
    }
 
-   /**
-    * Sets the value of the ref property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setRef(String value)
+   public void setRef(String ref)
    {
-      this.ref = value;
+      this.ref = ref;
    }
 
-   /**
-    * Gets the value of the valueFIXME property.
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
-   public String getValueFIXME()
+   public String getValue()
    {
-      return valueFIXME;
+      return value;
    }
 
-   /**
-    * Sets the value of the valueFIXME property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setValueFIXME(String value)
+   public void setValue(String value)
    {
-      this.valueFIXME = value;
+      this.value = value;
    }
-
 }

Deleted: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAutoExportModes.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAutoExportModes.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAutoExportModes.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1,64 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.osgi.blueprint.parser.xb;
-
-// $Id$
-
-/**
- * Java class for TautoExportModes.
- * 
- * @author thomas.diesler at jboss.com
- * @since 13-May-2009
- */
-public enum TAutoExportModes
-{
-
-   DISABLED("disabled"), 
-   INTERFACES("interfaces"), 
-   CLASS_HIERARCHY("class-hierarchy"), 
-   ALL_CLASSES("all-classes");
-
-   private final String value;
-
-   TAutoExportModes(String v)
-   {
-      value = v;
-   }
-
-   public String value()
-   {
-      return value;
-   }
-
-   public static TAutoExportModes fromValue(String v)
-   {
-      for (TAutoExportModes c : TAutoExportModes.values())
-      {
-         if (c.value.equals(v))
-         {
-            return c;
-         }
-      }
-      throw new IllegalArgumentException(v);
-   }
-
-}

Copied: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAutoExportModes.java (from rev 91340, projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAutoExportModes.java)
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAutoExportModes.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAutoExportModes.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.osgi.blueprint.parser.xb;
+
+// $Id$
+
+/**
+ * TautoExportModes is a base type that should be used for export-mode attributes.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
+ */
+public enum TAutoExportModes
+{
+   // [JBXB-209] Enum parsing requires value equal to type name
+   // https://jira.jboss.org/jira/browse/JBXB-209
+   disabled("disabled"), 
+   interfaces("interfaces"), 
+   class_hierarchy("class-hierarchy"), 
+   all_classes("all-classes");
+
+   private final String value;
+
+   TAutoExportModes(String v)
+   {
+      value = v;
+   }
+
+   public String value()
+   {
+      return value;
+   }
+
+   public static TAutoExportModes fromValue(String v)
+   {
+      for (TAutoExportModes c : TAutoExportModes.values())
+      {
+         if (c.value.equals(v))
+         {
+            return c;
+         }
+      }
+      throw new IllegalArgumentException(v);
+   }
+
+}

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAvailability.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAvailability.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAvailability.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -22,9 +22,9 @@
 package org.jboss.osgi.blueprint.parser.xb;
 
 /**
- * Defines an availability attribute type.  This is used in this
- * schema by the &lt;blueprint> default-availability attribute and the
- * &lt;reference&gt;, &lt;ref-set&gt;, and &lt;ref-list&gt; availability attribute.
+ * Tavailability defines an availability attribute type.  This is used in this
+ * schema by the <blueprint> default-availability attribute and the
+ * <reference> and <reference-list> availability attribute.
  * 
  * @author thomas.diesler at jboss.com
  * @since 13-May-2009

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TBean.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TBean.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TBean.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -23,29 +23,65 @@
 
 // $Id$
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.namespace.QName;
 
 import org.jboss.osgi.blueprint.BlueprintContext;
 
 /**
- * The type defintion for a <bean> component.
+ * The type definition for a <bean> component. 
  * 
+ * The <bean> attributes provide the characteristics for how to create a bean instance. 
+ * Constructor arguments and injected properties are specified via child <argument> and <property> elements.
+ * 
+ * <xsd:complexType name="Tbean"> 
+ *  <xsd:complexContent> 
+ *   <xsd:extension base="Tcomponent"> 
+ *    <xsd:group ref="GbeanElements" /> 
+ *    <xsd:attribute name="class" type="Tclass" />
+ *    <xsd:attribute name="init-method" type="Tmethod" /> 
+ *    <xsd:attribute name="destroy-method" type="Tmethod" /> 
+ *    <xsd:attribute name="factory-method" type="Tmethod" />
+ *    <xsd:attribute name="factory-ref" type="Tidref" /> 
+ *    <xsd:attribute name="scope" type="Tscope" /> 
+ *    <xsd:anyAttribute namespace="##other" processContents="strict" />
+ *   </xsd:extension> 
+ *  </xsd:complexContent> 
+ * </xsd:complexType>
+ * 
+ *  <xsd:complexType name="Tcomponent" abstract="true">
+ *   <xsd:attribute name="id" type="xsd:ID" />
+ *   <xsd:attribute name="activation" type="Tactivation">
+ *   <xsd:attribute name="depends-on" type="TdependsOn">
+ * </xsd:complexType>
+ *
+ * <xsd:group name="GbeanElements"> 
+ *  <xsd:sequence> 
+ *   <xsd:element name="description" type="Tdescription" minOccurs="0" /> 
+ *   <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ *    <xsd:element name="argument" type="Targument" /> 
+ *    <xsd:element name="property" type="Tproperty" /> 
+ *    <xsd:any namespace="##other" processContents="strict" />
+ *   </xsd:choice> 
+ *  </xsd:sequence> 
+ * </xsd:group>
+ * 
  * @author thomas.diesler at jboss.com
  * @since 13-May-2009
  */
- at XmlType(name = "Tbean", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "description", "properties", "arguments" })
+ at XmlType(name = "Tbean", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "description", "beanElements" })
 public class TBean extends TComponent
 {
    protected String description;
-   protected List<TProperty> properties;
-   protected List<TArgument> arguments;
+   protected List<Object> beanElements;
    protected String className;
    protected String initMethod;
    protected String destroyMethod;
@@ -64,27 +100,33 @@
       this.description = value;
    }
 
-   @XmlElement(name = "property")
-   public List<TProperty> getProperties()
+   @XmlElements( { 
+      @XmlElement(name = "property", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TProperty.class),
+      @XmlElement(name = "argument", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TArgument.class) })
+   public List<Object> getBeanElements()
    {
-      return properties;
+      if (beanElements == null)
+         beanElements = new ArrayList<Object>();
+      
+      return beanElements;
    }
 
-   public void setProperties(List<TProperty> properties)
+   public void setBeanElements(List<Object> beanElements)
    {
-      this.properties = properties;
+      this.beanElements = beanElements;
    }
 
-   public List<TArgument> getArguments()
+   public List<TProperty> getProperties()
    {
-      return arguments;
+      List<TProperty> props = new ArrayList<TProperty>();
+      for (Object obj : getBeanElements())
+      {
+         if (obj instanceof TProperty)
+            props.add((TProperty)obj);
+      }
+      return props;
    }
-
-   public void setArguments(List<TArgument> arguments)
-   {
-      this.arguments = arguments;
-   }
-
+   
    @XmlAttribute(name = "class")
    public String getClassName()
    {
@@ -126,12 +168,12 @@
       this.factoryMethod = value;
    }
 
-   public String getFactoryComponentId()
+   public String getFactoryRef()
    {
       return factoryRef;
    }
 
-   public void setFactoryComponentId(String value)
+   public void setFactoryRef(String value)
    {
       this.factoryRef = value;
    }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TBlueprint.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TBlueprint.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TBlueprint.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -48,18 +48,30 @@
 /**
  * The blueprint element is the top element.
  * 
- * The definitions consist of two sections: the type-converter section and the components section.
+ * <xsd:complexType name="Tblueprint">
+ *  <xsd:sequence>
+ *    <xsd:element name="description" type="Tdescription" minOccurs="0" />
+ *    <xsd:element name="type-converters" type="Ttype-converters" minOccurs="0" maxOccurs="1" />
+ *    <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ *      <xsd:element name="service" type="Tservice" />
+ *      <xsd:element name="reference-list" type="Treference-list" />
+ *      <xsd:element name="bean" type="Tbean" />
+ *      <xsd:element name="reference" type="Treference" />
+ *      <xsd:any namespace="##other" processContents="strict" />
+ *    </xsd:choice>
+ *  </xsd:sequence>
+ *  <xsd:attribute name="default-activation" default="eager" type="Tactivation"/>
+ *  <xsd:attribute name="default-timeout" type="Ttimeout" default="300000"/>
+ *  <xsd:attribute name="default-availability" type="Tavailability" default="mandatory"/>
+ *  <xsd:anyAttribute namespace="##other"  processContents="strict" />
+ * </xsd:complexType>
  * 
- * blueprint ::= <type-converters> component component ::= <bean> | <service> | service-reference service-reference ::= <reference> | <ref-list> | <ref-set>
- * type-converter ::= <bean> | <ref>
- * 
  * @author thomas.diesler at jboss.com
  * @since 13-May-2009
  */
 @JBossXmlSchema(namespace = BlueprintContext.XMLNS_BLUEPRINT, elementFormDefault = XmlNsForm.QUALIFIED)
 @XmlRootElement(name = "blueprint", namespace = BlueprintContext.XMLNS_BLUEPRINT)
- at XmlType(name = "Tblueprint", namespace = BlueprintContext.XMLNS_BLUEPRINT, 
-      propOrder = { "description", "typeConverters", "components" })
+ at XmlType(name = "Tblueprint", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "description", "typeConverters", "components" })
 public class TBlueprint
 {
    protected String description;
@@ -91,10 +103,10 @@
    }
 
    @XmlElements( { 
+      @XmlElement(name = "bean", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TBean.class),
       @XmlElement(name = "service", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TService.class),
-      @XmlElement(name = "reference-list", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TReferenceList.class),
-      @XmlElement(name = "bean", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TBean.class),
-      @XmlElement(name = "reference", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TReference.class) })
+      @XmlElement(name = "reference", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TReference.class),
+      @XmlElement(name = "reference-list", namespace = BlueprintContext.XMLNS_BLUEPRINT, type = TReferenceList.class) })
    public List<TComponent> getComponents()
    {
       if (components == null)

Deleted: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TComparator.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TComparator.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TComparator.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1,93 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.osgi.blueprint.parser.xb;
-
-//$Id$
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-/**
- * <p>
- * Java class for Tcomparator complex type.
- * 
- * <p>
- * The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType name=&quot;Tcomparator&quot;&gt;
- *   &lt;complexContent&gt;
- *     &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt;
- *       &lt;group ref=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}targetComponent&quot;/&gt;
- *     &lt;/restriction&gt;
- *   &lt;/complexContent&gt;
- * &lt;/complexType&gt;
- * </pre>
- * 
- * 
- */
-public class TComparator
-{
-   protected List<TComponent> components;
-   protected List<Object> any;
-
-   public List<TComponent> getComponents()
-   {
-      return components;
-   }
-
-   public void setComponents(List<TComponent> components)
-   {
-      this.components = components;
-   }
-
-   /**
-    * Gets the value of the any property.
-    * 
-    * <p>
-    * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the returned list will be present inside the
-    * JAXB object. This is why there is not a <CODE>set</CODE> method for the any property.
-    * 
-    * <p>
-    * For example, to add a new item, do as follows:
-    * 
-    * <pre>
-    * getAny().add(newItem);
-    * </pre>
-    * 
-    * 
-    * <p>
-    * Objects of the following type(s) are allowed in the list {@link Object }
-    * 
-    * 
-    */
-   public List<Object> getAny()
-   {
-      if (any == null)
-      {
-         any = new ArrayList<Object>();
-      }
-      return this.any;
-   }
-
-}

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TComponent.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TComponent.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TComponent.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -23,25 +23,42 @@
 
 //$Id$
 
-import java.util.ArrayList;
-import java.util.List;
-
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlType;
 
 import org.jboss.osgi.blueprint.BlueprintContext;
-import org.osgi.service.blueprint.reflect.ComponentMetadata;
 
 /**
- * The Component type is the base type for top-level
- * Blueprint components.  The <bean> <reference>, <service>, <ref-set>, and <ref-list> 
- * elements are all derived from the Component type.  
+ * The Tcomponent type is the base type for top-level Blueprint components.  
+ * The <bean> <reference>, <service>, and <reference-list> elements are all derived from
+ * the Tcomponent type.  This type defines an id attribute that is used create references 
+ * between different components.
  * 
- * This type defines an id attributre that is used create references between different components.
- * Component elements can also be inlined within other component definitions.
- *   
- * The id attribute is not valid when inliine.
+ * Component elements can also be inlined within other component definitions.  
+ * The id attribute is not valid when inlined.
  * 
+ * <xsd:complexType name="Tcomponent" abstract="true">
+ *   <xsd:attribute name="id" type="xsd:ID" />
+ *   <xsd:attribute name="activation" type="Tactivation">
+ *   <xsd:attribute name="depends-on" type="TdependsOn">
+ * </xsd:complexType>
+ * 
+ * <xsd:simpleType name="Tactivation">
+ *   <xsd:restriction base="xsd:NMTOKEN">
+ *     <xsd:enumeration value="eager" />
+ *     <xsd:enumeration value="lazy" />
+ *   </xsd:restriction>
+ * </xsd:simpleType>
+ * 
+ * <xsd:simpleType name="TdependsOn">
+ *   <xsd:restriction>
+ *     <xsd:simpleType>
+ *       <xsd:list itemType="Tidref" />
+ *     </xsd:simpleType>
+ *     <xsd:minLength value="1" />
+ *   </xsd:restriction>
+ * </xsd:simpleType>
+ * 
  * @author thomas.diesler at jboss.com
  * @since 13-May-2009
  */
@@ -49,8 +66,10 @@
 public abstract class TComponent
 {
    protected String id;
-   protected List<String> dependsOn;
-   protected int initialization;
+   // How can I map an attribute to List of String
+   // http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4244086#4244086
+   protected String dependsOn;
+   protected TActivation activation;
 
    @XmlAttribute(name = "id")
    public String getId()
@@ -63,29 +82,25 @@
       this.id = value;
    }
 
-   public List<String> getDependsOn()
+   @XmlAttribute
+   public String getDependsOn()
    {
-      if (dependsOn == null)
-         dependsOn = new ArrayList<String>();
-      
       return dependsOn;
    }
 
-   public void setDependsOn(List<String> dependsOn)
+   public void setDependsOn(String dependsOn)
    {
       this.dependsOn = dependsOn;
    }
 
-   public int getInitialization()
+   @XmlAttribute
+   public TActivation getActivation()
    {
-      if (initialization == 0)
-         initialization = ComponentMetadata.INITIALIZATION_EAGER;
-      
-      return initialization;
+      return activation;
    }
 
-   public void setInitialization(int initialization)
+   public void setActivation(TActivation activation)
    {
-      this.initialization = initialization;
+      this.activation = activation;
    }
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TInterfaces.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TInterfaces.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TInterfaces.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -32,6 +32,16 @@
 import org.jboss.osgi.blueprint.BlueprintContext;
 
 /**
+ * The type definition for the <interfaces> element used for <service>
+ * 
+ * <xsd:complexType name="Tinterfaces">
+ *   <xsd:choice minOccurs="1" maxOccurs="unbounded">
+ *     <xsd:element name="value" type="TinterfaceValue" />
+ *   </xsd:choice>
+ * </xsd:complexType>
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
  */
 @XmlType(name = "Tinterfaces", namespace = BlueprintContext.XMLNS_BLUEPRINT)
 public class TInterfaces

Copied: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TNull.java (from rev 91340, projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tnull.java)
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TNull.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TNull.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.osgi.blueprint.parser.xb;
+
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.osgi.blueprint.BlueprintContext;
+
+// $Id$
+
+/**
+ * The definition for a <null> value type.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
+ */
+ at XmlType(name = "Tnull", namespace = BlueprintContext.XMLNS_BLUEPRINT)
+public class TNull
+{
+
+}

Copied: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TProp.java (from rev 91340, projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tprop.java)
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TProp.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TProp.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -0,0 +1,82 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.osgi.blueprint.parser.xb;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.osgi.blueprint.BlueprintContext;
+
+// $Id$
+
+/**
+ * Tprop is a single property element for a <props> value type.  The property
+ * value can be specified using either the attribute, or as value data for
+ * the property element.
+ * 
+ * <xsd:complexType name="Tprop" mixed="true">
+ *   <xsd:attribute name="key" type="TstringValue" use="required" />
+ *   <xsd:attribute name="value" type="TstringValue" />
+ * </xsd:complexType>
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
+ */
+ at XmlType(name = "Tprop", namespace = BlueprintContext.XMLNS_BLUEPRINT)
+public class TProp
+{
+   protected String content;
+   protected String key;
+   protected String value;
+
+   public String getContent()
+   {
+      return content;
+   }
+
+   public void setContent(String value)
+   {
+      this.content = value;
+   }
+
+   @XmlAttribute
+   public String getKey()
+   {
+      return key;
+   }
+
+   public void setKey(String value)
+   {
+      this.key = value;
+   }
+
+   @XmlAttribute
+   public String getValue()
+   {
+      return value;
+   }
+
+   public void setValue(String value)
+   {
+      this.value = value;
+   }
+}

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TProperty.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TProperty.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TProperty.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -29,14 +29,35 @@
 import org.jboss.osgi.blueprint.BlueprintContext;
 
 /**
+ * A property that will be injected into a created <bean>
+ * component.  The <property> elements correspond to named
+ * JavaBean setting methods for a created bean object.
+ * 
+ * The value and ref attributes are convenience shortcuts to make
+ * the <argument> tag easier to code.  A fuller set of injected
+ * values and types can be specified using one of the "value"
+ * type elements.
+ * 
+ * <xsd:complexType name="Tproperty">
+ *   <xsd:sequence>
+ *     <xsd:element name="description" type="Tdescription" minOccurs="0" />
+ *     <xsd:group ref="Gvalue" minOccurs="0" />
+ *   </xsd:sequence>
+ *   <xsd:attribute name="name" type="Tmethod" use="required" />
+ *   <xsd:attribute name="ref" type="Tidref" />
+ *   <xsd:attribute name="value" type="TstringValue" />
+ * </xsd:complexType>
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
  */
 @XmlType(name = "Tproperty", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "description" })
-public class TProperty
+public class TProperty extends GValue
 {
    protected String description;
-   protected String value;
    protected String name;
    protected String ref;
+   protected String value;
 
    public String getDescription()
    {

Copied: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TProps.java (from rev 91340, projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tprops.java)
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TProps.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TProps.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.osgi.blueprint.parser.xb;
+
+// $Id$
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.osgi.blueprint.BlueprintContext;
+
+/**
+ * Tprops is the type used by the <props> value element.  The prop elements
+ * are pairs of string-valued keys and values.
+ * 
+ * <xsd:complexType name="Tprops">
+ *   <xsd:sequence>
+ *     <xsd:element name="prop" type="Tprop" minOccurs="0" maxOccurs="unbounded" />
+ *   </xsd:sequence>
+ * </xsd:complexType>
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
+ */
+ at XmlType(name = "Tprops", namespace = BlueprintContext.XMLNS_BLUEPRINT)
+public class TProps
+{
+   protected List<TProp> prop;
+
+   public List<TProp> getProp()
+   {
+      if (prop == null)
+         prop = new ArrayList<TProp>();
+      
+      return this.prop;
+   }
+
+}

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TRef.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TRef.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TRef.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -32,6 +32,10 @@
  * Tref is the type used for <ref> elements.  
  * This specifies a required component id for the reference component.
  * 
+ * <xsd:complexType name="Tref">
+ *   <xsd:attribute name="component-id" type="Tidref" use="required" />
+ * </xsd:complexType>
+ * 
  * @author thomas.diesler at jboss.com
  * @since 13-May-2009
  */

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TReference.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TReference.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TReference.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -25,23 +25,43 @@
 
 import java.math.BigInteger;
 
+import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlType;
 
 import org.jboss.osgi.blueprint.BlueprintContext;
 
 /**
- * The Treference type defines the <reference> element. These are instances of the TserviceReference type, with the addition of a timeout attribute. If the timeout is
- * not specified, the default-timeout value is inherited from the encapsulating <blueprint> definition.
+ * The Treference type defines the <reference> element.  These
+ * are instances of the TserviceReference type, with the addition
+ * of a timeout attribute.  If the timeout is not specified,
+ * the default-timeout value is inherited from the encapsulating
+ * <blueprint> definition.
  * 
+ * <xsd:complexType name="Treference">
+ *  <xsd:complexContent>
+ *    <xsd:extension base="TserviceReference">
+ *      <xsd:sequence>
+ *        <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="strict" />
+ *      </xsd:sequence>
+ *      <xsd:attribute name="timeout" type="Ttimeout" />
+ *    </xsd:extension>
+ *  </xsd:complexContent>
+ * </xsd:complexType>
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
  */
 
 // [JBXB-210] Property order cannot be defined on super type
 // https://jira.jboss.org/jira/browse/JBXB-210
+// @XmlType(name = "Treference", namespace = BlueprintContext.XMLNS_BLUEPRINT)
+
 @XmlType(name = "Treference", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "description", "referenceListeners" })
 public class TReference extends TServiceReference
 {
    protected BigInteger timeout;
 
+   @XmlAttribute
    public long getTimeout()
    {
       return timeout.longValue();

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TReferenceList.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TReferenceList.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TReferenceList.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -21,6 +21,9 @@
  */
 package org.jboss.osgi.blueprint.parser.xb;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import javax.xml.bind.annotation.XmlType;
 
 import org.jboss.osgi.blueprint.BlueprintContext;
@@ -28,17 +31,32 @@
 //$Id$
 
 /**
- * The Treference-list builds in the characteristics of the TserviceReference type to define characteristics of the <reference-list>.
+ * The Treference-list builds in the characteristics of the 
+ * TserviceReference type to define characteristics of the <reference-list>.
  * 
  * This adds in the characteristics that only apply to collections of references (e.g., member-type).
+ * 
+ * <xsd:complexType name="Treference-list">
+ *   <xsd:complexContent>
+ *     <xsd:extension base="TserviceReference">
+ *       <xsd:sequence>
+ *         <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="strict" />
+ *       </xsd:sequence>
+ *       <xsd:attribute name="member-type" type="Tservice-use" default="service-object">
+ *     </xsd:extension>
+ *   </xsd:complexContent>
+ * </xsd:complexType>
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
  */
-
 //[JBXB-210] Property order cannot be defined on super type
 //https://jira.jboss.org/jira/browse/JBXB-210
 @XmlType(name = "Treference-list", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "description" })
 public class TReferenceList extends TServiceReference
 {
    protected TServiceUse memberType;
+   protected List<Object> any;
 
    public TServiceUse getMemberType()
    {
@@ -49,4 +67,12 @@
    {
       this.memberType = value;
    }
+
+   public List<Object> getAny()
+   {
+      if (any == null)
+         any = new ArrayList<Object>();
+
+      return this.any;
+   }
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TReferenceListener.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TReferenceListener.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TReferenceListener.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -29,14 +29,48 @@
 import org.jboss.osgi.blueprint.BlueprintContext;
 
 /**
+ * TReferenceListener defines a reference listener that is attached
+ * to a <reference> or <reference-list> element.  The listener
+ * object can be specified as a <ref> or as an inline <bean> or
+ * <reference> component.  Listener events are mapped to the indicated
+ * bind or unbind methods.
+ * 
+ * <xsd:complexType name="TreferenceListener">
+ *   <xsd:sequence>
+ *     <xsd:group ref="GtargetComponent" minOccurs="0" />
+ *   </xsd:sequence>
+ *   <xsd:attribute name="ref" type="Tidref" />
+ *   <xsd:attribute name="bind-method" type="Tmethod" />
+ *   <xsd:attribute name="unbind-method" type="Tmethod" />
+ * </xsd:complexType>
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
  */
- at XmlType(name = "TreferenceListener", namespace = BlueprintContext.XMLNS_BLUEPRINT)
-public class TReferenceListener
+
+//[JBXB-210] Property order cannot be defined on super type
+//https://jira.jboss.org/jira/browse/JBXB-210
+//@XmlType(name = "TreferenceListener", namespace = BlueprintContext.XMLNS_BLUEPRINT)
+
+ at XmlType(name = "TreferenceListener", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "bean", "reference", "refElement" })
+public class TReferenceListener extends GTargetComponent
 {
+   protected String ref;
    protected String bindMethod;
    protected String unbindMethod;
 
    @XmlAttribute
+   public String getRef()
+   {
+      return ref;
+   }
+
+   public void setRef(String ref)
+   {
+      this.ref = ref;
+   }
+
+   @XmlAttribute
    public String getBindMethod()
    {
       return bindMethod;

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TRegistrationListener.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TRegistrationListener.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TRegistrationListener.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -23,55 +23,39 @@
 
 // $Id$
 
-import java.util.ArrayList;
-import java.util.List;
-
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlType;
 
 import org.jboss.osgi.blueprint.BlueprintContext;
 
 /**
+ * A registration listener definition.  The target registration listener
+ * can be either a <ref> to a <bean> or <service> component, or an inline
+ * <bean> or <service> component definition.  The registration-method and
+ * unregistration-method attributes define the methods that will be called
+ * for the respective events.
  * 
+ * For the very common case of using a <ref> to a listener component, the
+ * ref attribute may also be used as a shortcut.
  * 
- * A registration listener definition. The target registration listener can be either a <ref> to a <bean> or <service> component, or an inline <bean> or <service>
- * component definition. The registration-method and unregistration-method attributes define the methods that will be called for the respective events.
+ * <xsd:complexType name="TregistrationListener">
+ *   <xsd:sequence>
+ *     <xsd:group ref="GtargetComponent" minOccurs="0" />
+ *   </xsd:sequence>
+ *   <xsd:attribute name="ref" type="Tidref" />
+ *   <xsd:attribute name="registration-method" type="Tmethod" />
+ *   <xsd:attribute name="unregistration-method" type="Tmethod" />
+ * </xsd:complexType>
  * 
- * For the very common case of using a <ref> to a listener component, the ref attribute may also be used as a shortcut.
- * 
- * 
- * 
- * <p>
- * Java class for TregistrationListener complex type.
- * 
- * <p>
- * The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType name=&quot;TregistrationListener&quot;&gt;
- *   &lt;complexContent&gt;
- *     &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt;
- *       &lt;group ref=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}targetComponent&quot;/&gt;
- *       &lt;attribute name=&quot;ref&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}Tidref&quot; /&gt;
- *       &lt;attribute name=&quot;registration-method&quot; use=&quot;required&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}Tmethod&quot; /&gt;
- *       &lt;attribute name=&quot;unregistration-method&quot; use=&quot;required&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}Tmethod&quot; /&gt;
- *     &lt;/restriction&gt;
- *   &lt;/complexContent&gt;
- * &lt;/complexType&gt;
- * </pre>
- * 
- * 
  */
 
-// [JBXB-211] @XmlType.propOrder required with no schema sequence
-// https://jira.jboss.org/jira/browse/JBXB-211
- at XmlType(name = "TregistrationListener", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "bean" })
-public class TRegistrationListener
+//[JBXB-210] Property order cannot be defined on super type
+//https://jira.jboss.org/jira/browse/JBXB-210
+//@XmlType(name = "TregistrationListener", namespace = BlueprintContext.XMLNS_BLUEPRINT)
+
+ at XmlType(name = "TregistrationListener", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "bean", "reference", "refElement" })
+public class TRegistrationListener extends GTargetComponent
 {
-   protected TBean bean;
-   protected TReference reference;
-   protected TRef refFIXME;
-   protected List<Object> any;
    protected String ref;
    protected String registrationMethod;
    protected String unregistrationMethod;
@@ -98,45 +82,7 @@
       this.unregistrationMethod = value;
    }
 
-   public TBean getBean()
-   {
-      return bean;
-   }
-
-   public void setBean(TBean value)
-   {
-      this.bean = value;
-   }
-
-   public TReference getReference()
-   {
-      return reference;
-   }
-
-   public void setReference(TReference value)
-   {
-      this.reference = value;
-   }
-
-   public TRef getRefFIXME()
-   {
-      return refFIXME;
-   }
-
-   public void setRefFIXME(TRef value)
-   {
-      this.refFIXME = value;
-   }
-
-   public List<Object> getAny()
-   {
-      if (any == null)
-      {
-         any = new ArrayList<Object>();
-      }
-      return this.any;
-   }
-
+   @XmlAttribute
    public String getRef()
    {
       return ref;

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TService.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TService.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TService.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -36,23 +36,60 @@
 import org.jboss.osgi.blueprint.BlueprintContext;
 
 /**
- * Tservice is the type for services exported by this blueprint bundle. Services are sourced by either a <ref> to a <bean> component or an <inline> bean component.
+ * Tservice is the type for services exported by this blueprint bundle.
+ * Services are sourced by either a <ref> to a <bean> component or an
+ * <inline> bean component.
  * 
+ * <xsd:complexType name="Tservice">
+ *   <xsd:complexContent>
+ *     <xsd:extension base="Tcomponent">
+ *       <xsd:sequence>
+ *         <xsd:group ref="GserviceElements" />
+ *       </xsd:sequence>
+ *       <xsd:attribute name="interface" type="Tclass">
+ *       <xsd:attribute name="ref" type="Tidref">
+ *       <xsd:attribute name="auto-export" type="TautoExportModes"
+ *       <xsd:attribute name="ranking" type="xsd:int" default="0">
+ *       <xsd:anyAttribute namespace="##other" processContents="strict" />
+ *     </xsd:extension>
+ *   </xsd:complexContent>
+ * </xsd:complexType>
+ * 
+ *  <xsd:complexType name="Tcomponent" abstract="true">
+ *   <xsd:attribute name="id" type="xsd:ID" />
+ *   <xsd:attribute name="activation" type="Tactivation">
+ *   <xsd:attribute name="depends-on" type="TdependsOn">
+ * </xsd:complexType>
+ *
+ * <xsd:group name="GserviceElements">
+ *   <xsd:sequence>
+ *     <xsd:group ref="GbaseServiceElements" />
+ *     <xsd:group ref="GtargetComponent" minOccurs="0">
+ *   </xsd:sequence>
+ * </xsd:group>
+ * 
+ * <xsd:group name="GbaseServiceElements">
+ *   <xsd:sequence>
+ *     <xsd:element name="description" type="Tdescription"  minOccurs="0" />
+ *     <xsd:element name="interfaces" type="Tinterfaces" minOccurs="0">
+ *     <xsd:element name="service-properties" type="TserviceProperties" minOccurs="0">
+ *     <xsd:element name="registration-listener" type="TregistrationListener" minOccurs="0" maxOccurs="unbounded">
+ *   </xsd:sequence>
+ * </xsd:group>
+ * 
  * @author thomas.diesler at jboss.com
  * @since 13-May-2009
  */
- at XmlType(name = "Tservice", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "description", "interfaces", "serviceProperties", "registrationListeners",
-      "bean", "ref" })
-public class TService extends TComponent
+ at XmlType(name = "Tservice", namespace = BlueprintContext.XMLNS_BLUEPRINT, 
+      propOrder = { "description", "interfaces", "serviceProperties", "registrationListeners", "bean", "ref" })
+public class TService extends GTargetComponent
 {
    protected String description;
    protected TInterfaces interfaces;
    protected TServiceProperties serviceProperties;
    protected List<TRegistrationListener> registrationListener;
-   protected TBean bean;
-   protected List<Object> any;
    protected String ref;
-   protected TAutoExportModes autoExportMode;
+   protected TAutoExportModes autoExport;
    protected int ranking;
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
 
@@ -119,38 +156,28 @@
       this.registrationListener = registrationListener;
    }
 
-   public TBean getBean()
-   {
-      return bean;
-   }
-
-   public void setBean(TBean value)
-   {
-      this.bean = value;
-   }
-
    @XmlAttribute
    public String getRef()
    {
       return ref;
    }
 
-   public void setRef(String value)
+   public void setRef(String ref)
    {
-      this.ref = value;
+      this.ref = ref;
    }
 
-   public TAutoExportModes getAutoExportMode()
+   public TAutoExportModes getAutoExport()
    {
-      if (autoExportMode == null)
-         autoExportMode = TAutoExportModes.DISABLED;
+      if (autoExport == null)
+         autoExport = TAutoExportModes.disabled;
 
-      return autoExportMode;
+      return autoExport;
    }
 
-   public void setAutoExportMode(TAutoExportModes value)
+   public void setAutoExport(TAutoExportModes value)
    {
-      this.autoExportMode = value;
+      this.autoExport = value;
    }
 
    public int getRanking()
@@ -167,13 +194,4 @@
    {
       return otherAttributes;
    }
-
-   public List<Object> getAny()
-   {
-      if (any == null)
-      {
-         any = new ArrayList<Object>();
-      }
-      return this.any;
-   }
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceProperties.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceProperties.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceProperties.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -32,32 +32,21 @@
 
 
 /**
+ *  TserviceProperty is used for <service-properties> elements.
+ *  The syntax is similar to what is defined for <map>, but keys must be
+ *  string values and there are no type defaults that can be specified.
+ *  created from the entry elements, which require a key/value pair.
+ *  
  * 
- *               
- *               TserviceProperty is used for <service-properties> elements.
- *               The syntax is similar to what is defined for <map>, but keys must be
- *               string values and there are no type defaults that can be specified.
- *               created from the entry elements, which require a key/value pair.
- *               
- *             
+ * <xsd:complexType name="TserviceProperties">
+ *   <xsd:sequence>
+ *     <xsd:element name="entry" type="TservicePropertyEntry"  minOccurs="0" maxOccurs="unbounded" />
+ *     <xsd:any namespace="##other" processContents="strict"  minOccurs="0" maxOccurs="unbounded" />
+ *   </xsd:sequence>
+ * </xsd:complexType>
  * 
- * <p>Java class for TserviceProperties complex type.
- * 
- * <p>The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType name="TserviceProperties">
- *   &lt;complexContent>
- *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       &lt;sequence>
- *         &lt;element name="entry" type="{http://www.osgi.org/xmlns/blueprint/v1.0.0}TservicePropertyEntry" maxOccurs="unbounded" minOccurs="0"/>
- *       &lt;/sequence>
- *     &lt;/restriction>
- *   &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- * 
- * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
  */
 @XmlType(name = "TserviceProperties", namespace = BlueprintContext.XMLNS_BLUEPRINT)
 public class TServiceProperties {

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServicePropertyEntry.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServicePropertyEntry.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServicePropertyEntry.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -21,6 +21,7 @@
  */
 package org.jboss.osgi.blueprint.parser.xb;
 
+import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlType;
 
 import org.jboss.osgi.blueprint.BlueprintContext;
@@ -28,16 +29,28 @@
 // $Id$
 
 /**
- * TservicePropertyEntry is an entry value used for the <service-properties> element. This does not allow a child <key> element and there are no key-ref or value-ref
+ * TservicePropertyEntry is an entry value used for the <service-properties> element. 
+ * This does not allow a child <key> element and there are no key-ref or value-ref
  * attributes.
  * 
+ * <xsd:complexType name="TservicePropertyEntry">
+ *   <xsd:sequence>
+ *     <xsd:group ref="Gvalue" minOccurs="0" />
+ *   </xsd:sequence>
+ *   <xsd:attribute name="key" type="TstringValue" use="required" />
+ *   <xsd:attribute name="value" type="TstringValue" />
+ * </xsd:complexType>
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
  */
- at XmlType(name = "TservicePropertyEntry", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "value" })
-public class TServicePropertyEntry
+ at XmlType(name = "TservicePropertyEntry", namespace = BlueprintContext.XMLNS_BLUEPRINT)
+public class TServicePropertyEntry extends GValue
 {
    protected String key;
    protected String value;
 
+   @XmlAttribute
    public String getKey()
    {
       return key;
@@ -48,6 +61,7 @@
       this.key = key;
    }
 
+   @XmlAttribute
    public String getValue()
    {
       return value;
@@ -57,5 +71,4 @@
    {
       this.value = value;
    }
-
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceReference.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceReference.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceReference.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -36,20 +36,45 @@
 import org.jboss.osgi.blueprint.BlueprintContext;
 
 /**
- * TserviceReference is the base element type used for <reference>, <ref-set>, and <ref-list> elements. This type defines all of the characteristics common to both
- * sorts of references.
+ * TserviceReference is the base element type used for <reference>, <ref-set>, and <ref-list> elements. 
+ * This type defines all of the characteristics common to both sorts of references.
+ * 
+ * <xsd:complexType name="TserviceReference">
+ *   <xsd:complexContent>
+ *     <xsd:extension base="Tcomponent">
+ *       <xsd:sequence>
+ *         <xsd:group ref="GserviceReferenceElements" />
+ *       </xsd:sequence>
+ *       <xsd:attribute name="interface" type="Tclass">
+ *       <xsd:attribute name="filter" type="xsd:normalizedString">
+ *       <xsd:attribute name="component-name" type="Tidref">
+ *       <xsd:attribute name="availability" type="Tavailability">
+ *       <xsd:anyAttribute namespace="##other" processContents="strict" />
+ *     </xsd:extension>
+ *   </xsd:complexContent>
+ * </xsd:complexType>
+ * 
+ * <xsd:group name="GserviceReferenceElements">
+ *   <xsd:sequence>
+ *     <xsd:element name="description" type="Tdescription" minOccurs="0" />
+ *     <xsd:element name="reference-listener" type="TreferenceListener" minOccurs="0" maxOccurs="unbounded">
+ *   </xsd:sequence>
+ * </xsd:group>
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
  */
 @XmlType(name = "TserviceReference", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "description", "referenceListeners" })
 public class TServiceReference extends TComponent
 {
    protected String description;
    protected List<TReferenceListener> listener;
-   protected List<Object> any;
+   private String interfaceName;
    protected String filter;
    protected String componentName;
    protected TAvailability availability;
+   
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
-   private String interfaceName;
 
    public String getDescription()
    {
@@ -75,15 +100,6 @@
       this.listener = listener;
    }
 
-   public List<Object> getAny()
-   {
-      if (any == null)
-      {
-         any = new ArrayList<Object>();
-      }
-      return this.any;
-   }
-
    public String getFilter()
    {
       return filter;

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceUse.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceUse.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceUse.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -30,9 +30,7 @@
 /**
  * Indicates the type of object that will be placed within the reference collection.
  *  
- * "service-object" indicates the collection contains blueprint proxies for imported
- * services. 
- * 
+ * "service-object" indicates the collection contains blueprint proxies for imported services. 
  * "service-reference" indicates the collection contains ServiceReference objects matching the target service type.
  */
 @XmlType(name = "Tservice-use", namespace = BlueprintContext.XMLNS_BLUEPRINT)

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TTypeConverters.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TTypeConverters.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TTypeConverters.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -34,32 +34,22 @@
 
 
 /**
- * 
- * 
- * The type used for the <type-converters> element. The <type-converters> section is a set of <bean>, <ref>, or <reference> elements that identify the type convert
- * components that will ference components.
- * 
- * 
- * 
- * <p>
- * Java class for Ttype-converters complex type.
- * 
- * <p>
- * The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType name=&quot;Ttype-converters&quot;&gt;
- *   &lt;complexContent&gt;
- *     &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt;
- *       &lt;choice maxOccurs=&quot;unbounded&quot; minOccurs=&quot;0&quot;&gt;
- *         &lt;group ref=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}targetComponent&quot;/&gt;
- *       &lt;/choice&gt;
- *     &lt;/restriction&gt;
- *   &lt;/complexContent&gt;
- * &lt;/complexType&gt;
- * </pre>
- * 
- * 
+ * The type used for the <type-converters> element.
+ *   
+ * The <type-converters> section is a set of <bean>, <ref>, or
+ * <reference> elements that identify the type converter components.
+ *
+ * <xsd:complexType name="Ttype-converters">
+ *  <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ *    <xsd:element name="bean" type="Tbean" />
+ *    <xsd:element name="reference" type="Treference" />
+ *    <xsd:element name="ref" type="Tref" />
+ *    <xsd:any namespace="##other" processContents="strict" />
+ *  </xsd:choice>
+ * </xsd:complexType>
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
  */
 @XmlType(name = "Ttype-converters", namespace = BlueprintContext.XMLNS_BLUEPRINT)
 public class TTypeConverters

Copied: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TValue.java (from rev 91340, projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tvalue.java)
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TValue.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TValue.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.osgi.blueprint.parser.xb;
+
+// $Id$
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.osgi.blueprint.BlueprintContext;
+
+/**
+ * Tvalue is the type used for <value> elements.  
+ * 
+ * The <value> element is used for types that can be created from a single string value.
+ * 
+ * The string value is the data value for the element.  
+ * The optional type attribute allows a target conversion value to be explicitly specified.
+ * 
+ * <xsd:complexType name="Tvalue" mixed="true">
+ *  <xsd:attribute name="type" type="Ttype" />
+ * </xsd:complexType>
+ * 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 13-May-2009
+ */
+ at XmlType(name = "Tvalue", namespace = BlueprintContext.XMLNS_BLUEPRINT)
+public class TValue
+{
+   protected String content;
+   protected String type;
+
+   public String getContent()
+   {
+      return content;
+   }
+
+   public void setContent(String value)
+   {
+      this.content = value;
+   }
+
+   @XmlAttribute
+   public String getType()
+   {
+      return type;
+   }
+
+   public void setType(String value)
+   {
+      this.type = value;
+   }
+}

Deleted: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tcollection.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tcollection.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tcollection.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1,95 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.osgi.blueprint.parser.xb;
-
-// $Id$
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.bind.JAXBElement;
-
-
-/**
- * 
- * 
- * Tcollection is the base schema type for different ordered collection types. This is shared between the <array>, <list>, and <set> elements.
- * 
- * 
- * 
- * <p>
- * Java class for Tcollection complex type.
- * 
- * <p>
- * The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType name=&quot;Tcollection&quot;&gt;
- *   &lt;complexContent&gt;
- *     &lt;extension base=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}TtypedCollection&quot;&gt;
- *       &lt;group ref=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}value&quot; maxOccurs=&quot;unbounded&quot; minOccurs=&quot;0&quot;/&gt;
- *     &lt;/extension&gt;
- *   &lt;/complexContent&gt;
- * &lt;/complexType&gt;
- * </pre>
- * 
- * 
- */
-public class Tcollection extends TtypedCollection
-{
-   protected List<Object> value;
-
-   /**
-    * Gets the value of the value property.
-    * 
-    * <p>
-    * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the returned list will be present inside the
-    * JAXB object. This is why there is not a <CODE>set</CODE> method for the value property.
-    * 
-    * <p>
-    * For example, to add a new item, do as follows:
-    * 
-    * <pre>
-    * getValue().add(newItem);
-    * </pre>
-    * 
-    * 
-    * <p>
-    * Objects of the following type(s) are allowed in the list {@link JAXBElement }{@code <}{@link Tvalue }{@code >} {@link JAXBElement }{@code <}{@link TService }{@code >}
-    * {@link JAXBElement }{@code <}{@link TRef }{@code >} {@link JAXBElement }{@code <}{@link TReference }{@code >} {@link JAXBElement }{@code <}{@link TRef }{@code >}
-    * {@link JAXBElement }{@code <}{@link Tmap }{@code >} {@link JAXBElement }{@code <}{@link TBean }{@code >} {@link JAXBElement }{@code <}{@link Tnull }{@code >}
-    * {@link JAXBElement }{@code <}{@link TReferenceList }{@code >} {@link JAXBElement }{@code <}{@link TReferenceList }{@code >} {@link JAXBElement }{@code <}
-    * {@link Tcollection }{@code >} {@link Object } {@link JAXBElement }{@code <}{@link Tcollection }{@code >} {@link JAXBElement }{@code <}{@link Tcollection }{@code >}
-    * {@link JAXBElement }{@code <}{@link Tprops }{@code >}
-    * 
-    * 
-    */
-   public List<Object> getValue()
-   {
-      if (value == null)
-      {
-         value = new ArrayList<Object>();
-      }
-      return this.value;
-   }
-
-}

Deleted: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tkey.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tkey.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tkey.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1,384 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.osgi.blueprint.parser.xb;
-
-// $Id$
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-/**
- * The Tkey type defines the element types that are permitted for Map key situations. These can be any of the "value" types other than the <null> element.
- * 
- * <p>
- * Java class for Tkey complex type.
- * 
- * <p>
- * The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType name=&quot;Tkey&quot;&gt;
- *   &lt;complexContent&gt;
- *     &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt;
- *       &lt;group ref=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}nonNullValue&quot;/&gt;
- *     &lt;/restriction&gt;
- *   &lt;/complexContent&gt;
- * &lt;/complexType&gt;
- * </pre>
- * 
- * 
- */
-public class Tkey
-{
-
-   protected TService service;
-   protected TReferenceList refList;
-   protected TReferenceList refSet;
-   protected TBean bean;
-   protected TReference reference;
-   protected TRef refFIXME;
-   protected List<Object> any;
-   protected TRef idref;
-   protected Tvalue value;
-   protected Tcollection list;
-   protected Tcollection set;
-   protected Tmap map;
-   protected Tcollection array;
-   protected Tprops props;
-
-   /**
-    * Gets the value of the service property.
-    * 
-    * @return possible object is {@link TService }
-    * 
-    */
-   public TService getService()
-   {
-      return service;
-   }
-
-   /**
-    * Sets the value of the service property.
-    * 
-    * @param value allowed object is {@link TService }
-    * 
-    */
-   public void setService(TService value)
-   {
-      this.service = value;
-   }
-
-   /**
-    * Gets the value of the refList property.
-    * 
-    * @return possible object is {@link TReferenceList }
-    * 
-    */
-   public TReferenceList getRefList()
-   {
-      return refList;
-   }
-
-   /**
-    * Sets the value of the refList property.
-    * 
-    * @param value allowed object is {@link TReferenceList }
-    * 
-    */
-   public void setRefList(TReferenceList value)
-   {
-      this.refList = value;
-   }
-
-   /**
-    * Gets the value of the refSet property.
-    * 
-    * @return possible object is {@link TReferenceList }
-    * 
-    */
-   public TReferenceList getRefSet()
-   {
-      return refSet;
-   }
-
-   /**
-    * Sets the value of the refSet property.
-    * 
-    * @param value allowed object is {@link TReferenceList }
-    * 
-    */
-   public void setRefSet(TReferenceList value)
-   {
-      this.refSet = value;
-   }
-
-   /**
-    * Gets the value of the bean property.
-    * 
-    * @return possible object is {@link TBean }
-    * 
-    */
-   public TBean getBean()
-   {
-      return bean;
-   }
-
-   /**
-    * Sets the value of the bean property.
-    * 
-    * @param value allowed object is {@link TBean }
-    * 
-    */
-   public void setBean(TBean value)
-   {
-      this.bean = value;
-   }
-
-   /**
-    * Gets the value of the reference property.
-    * 
-    * @return possible object is {@link TReference }
-    * 
-    */
-   public TReference getReference()
-   {
-      return reference;
-   }
-
-   /**
-    * Sets the value of the reference property.
-    * 
-    * @param value allowed object is {@link TReference }
-    * 
-    */
-   public void setReference(TReference value)
-   {
-      this.reference = value;
-   }
-
-   /**
-    * Gets the value of the refFIXME property.
-    * 
-    * @return possible object is {@link TRef }
-    * 
-    */
-   public TRef getRefFIXME()
-   {
-      return refFIXME;
-   }
-
-   /**
-    * Sets the value of the refFIXME property.
-    * 
-    * @param value allowed object is {@link TRef }
-    * 
-    */
-   public void setRefFIXME(TRef value)
-   {
-      this.refFIXME = value;
-   }
-
-   /**
-    * Gets the value of the any property.
-    * 
-    * <p>
-    * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the returned list will be present inside the
-    * JAXB object. This is why there is not a <CODE>set</CODE> method for the any property.
-    * 
-    * <p>
-    * For example, to add a new item, do as follows:
-    * 
-    * <pre>
-    * getAny().add(newItem);
-    * </pre>
-    * 
-    * 
-    * <p>
-    * Objects of the following type(s) are allowed in the list {@link Object }
-    * 
-    * 
-    */
-   public List<Object> getAny()
-   {
-      if (any == null)
-      {
-         any = new ArrayList<Object>();
-      }
-      return this.any;
-   }
-
-   /**
-    * Gets the value of the idref property.
-    * 
-    * @return possible object is {@link TRef }
-    * 
-    */
-   public TRef getIdref()
-   {
-      return idref;
-   }
-
-   /**
-    * Sets the value of the idref property.
-    * 
-    * @param value allowed object is {@link TRef }
-    * 
-    */
-   public void setIdref(TRef value)
-   {
-      this.idref = value;
-   }
-
-   /**
-    * Gets the value of the value property.
-    * 
-    * @return possible object is {@link Tvalue }
-    * 
-    */
-   public Tvalue getValue()
-   {
-      return value;
-   }
-
-   /**
-    * Sets the value of the value property.
-    * 
-    * @param value allowed object is {@link Tvalue }
-    * 
-    */
-   public void setValue(Tvalue value)
-   {
-      this.value = value;
-   }
-
-   /**
-    * Gets the value of the list property.
-    * 
-    * @return possible object is {@link Tcollection }
-    * 
-    */
-   public Tcollection getList()
-   {
-      return list;
-   }
-
-   /**
-    * Sets the value of the list property.
-    * 
-    * @param value allowed object is {@link Tcollection }
-    * 
-    */
-   public void setList(Tcollection value)
-   {
-      this.list = value;
-   }
-
-   /**
-    * Gets the value of the set property.
-    * 
-    * @return possible object is {@link Tcollection }
-    * 
-    */
-   public Tcollection getSet()
-   {
-      return set;
-   }
-
-   /**
-    * Sets the value of the set property.
-    * 
-    * @param value allowed object is {@link Tcollection }
-    * 
-    */
-   public void setSet(Tcollection value)
-   {
-      this.set = value;
-   }
-
-   /**
-    * Gets the value of the map property.
-    * 
-    * @return possible object is {@link Tmap }
-    * 
-    */
-   public Tmap getMap()
-   {
-      return map;
-   }
-
-   /**
-    * Sets the value of the map property.
-    * 
-    * @param value allowed object is {@link Tmap }
-    * 
-    */
-   public void setMap(Tmap value)
-   {
-      this.map = value;
-   }
-
-   /**
-    * Gets the value of the array property.
-    * 
-    * @return possible object is {@link Tcollection }
-    * 
-    */
-   public Tcollection getArray()
-   {
-      return array;
-   }
-
-   /**
-    * Sets the value of the array property.
-    * 
-    * @param value allowed object is {@link Tcollection }
-    * 
-    */
-   public void setArray(Tcollection value)
-   {
-      this.array = value;
-   }
-
-   /**
-    * Gets the value of the props property.
-    * 
-    * @return possible object is {@link Tprops }
-    * 
-    */
-   public Tprops getProps()
-   {
-      return props;
-   }
-
-   /**
-    * Sets the value of the props property.
-    * 
-    * @param value allowed object is {@link Tprops }
-    * 
-    */
-   public void setProps(Tprops value)
-   {
-      this.props = value;
-   }
-
-}

Deleted: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tmap.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tmap.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tmap.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1,116 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.osgi.blueprint.parser.xb;
-
-// $Id$
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-/**
- * 
- * 
- * Tmap is the base type used for <map> elements. A map may have a default value type specified, so it inherits from the TtypeCollection type. A key type can also be
- * specified, and the map members are created from the entry elements, which require a key/value pair.
- * 
- * 
- * 
- * <p>
- * Java class for Tmap complex type.
- * 
- * <p>
- * The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType name=&quot;Tmap&quot;&gt;
- *   &lt;complexContent&gt;
- *     &lt;extension base=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}TtypedCollection&quot;&gt;
- *       &lt;sequence&gt;
- *         &lt;element name=&quot;entry&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}TmapEntry&quot; maxOccurs=&quot;unbounded&quot; minOccurs=&quot;0&quot;/&gt;
- *       &lt;/sequence&gt;
- *       &lt;attribute name=&quot;key-type&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}Tclass&quot; /&gt;
- *     &lt;/extension&gt;
- *   &lt;/complexContent&gt;
- * &lt;/complexType&gt;
- * </pre>
- * 
- * 
- */
-public class Tmap extends TtypedCollection
-{
-
-   protected List<TmapEntry> entry;
-   protected String keyType;
-
-   /**
-    * Gets the value of the entry property.
-    * 
-    * <p>
-    * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the returned list will be present inside the
-    * JAXB object. This is why there is not a <CODE>set</CODE> method for the entry property.
-    * 
-    * <p>
-    * For example, to add a new item, do as follows:
-    * 
-    * <pre>
-    * getEntry().add(newItem);
-    * </pre>
-    * 
-    * 
-    * <p>
-    * Objects of the following type(s) are allowed in the list {@link TmapEntry }
-    * 
-    * 
-    */
-   public List<TmapEntry> getEntry()
-   {
-      if (entry == null)
-      {
-         entry = new ArrayList<TmapEntry>();
-      }
-      return this.entry;
-   }
-
-   /**
-    * Gets the value of the keyType property.
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
-   public String getKeyType()
-   {
-      return keyType;
-   }
-
-   /**
-    * Sets the value of the keyType property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setKeyType(String value)
-   {
-      this.keyType = value;
-   }
-
-}

Deleted: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TmapEntry.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TmapEntry.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TmapEntry.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1,535 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.osgi.blueprint.parser.xb;
-
-// $Id$
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-/**
- * 
- * 
- * TmapEntry is used for <entry> elements nested inside of a <map> element. Each <entry> instance defines a key/value pair that will be added to the Map. Both the keys
- * and values may be arbitrary types. Keys must not be <null> but <null> is permitted for entry values. A default type can be specified for both the keys and the
- * values, but individual keys or values can override the default.
- * 
- * 
- * 
- * <p>
- * Java class for TmapEntry complex type.
- * 
- * <p>
- * The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType name=&quot;TmapEntry&quot;&gt;
- *   &lt;complexContent&gt;
- *     &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt;
- *       &lt;sequence&gt;
- *         &lt;element name=&quot;keyFIXME&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}Tkey&quot; minOccurs=&quot;0&quot;/&gt;
- *         &lt;group ref=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}value&quot;/&gt;
- *       &lt;/sequence&gt;
- *       &lt;attribute name=&quot;key&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}TstringValue&quot; /&gt;
- *       &lt;attribute name=&quot;key-ref&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}Tidref&quot; /&gt;
- *       &lt;attribute name=&quot;valueFIXME&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}TstringValue&quot; /&gt;
- *       &lt;attribute name=&quot;value-ref&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}Tidref&quot; /&gt;
- *     &lt;/restriction&gt;
- *   &lt;/complexContent&gt;
- * &lt;/complexType&gt;
- * </pre>
- * 
- * 
- */
-public class TmapEntry
-{
-
-   protected Tkey keyFIXME;
-   protected TService service;
-   protected TReferenceList refList;
-   protected TReferenceList refSet;
-   protected TBean bean;
-   protected TReference reference;
-   protected TRef refFIXME;
-   protected List<Object> any;
-   protected TRef idref;
-   protected Tvalue value;
-   protected Tcollection list;
-   protected Tcollection set;
-   protected Tmap map;
-   protected Tcollection array;
-   protected Tprops props;
-   protected Tnull _null;
-   protected String key;
-   protected String keyRef;
-   protected String valueFIXME;
-   protected String valueRef;
-
-   /**
-    * Gets the value of the keyFIXME property.
-    * 
-    * @return possible object is {@link Tkey }
-    * 
-    */
-   public Tkey getKeyFIXME()
-   {
-      return keyFIXME;
-   }
-
-   /**
-    * Sets the value of the keyFIXME property.
-    * 
-    * @param value allowed object is {@link Tkey }
-    * 
-    */
-   public void setKeyFIXME(Tkey value)
-   {
-      this.keyFIXME = value;
-   }
-
-   /**
-    * Gets the value of the service property.
-    * 
-    * @return possible object is {@link TService }
-    * 
-    */
-   public TService getService()
-   {
-      return service;
-   }
-
-   /**
-    * Sets the value of the service property.
-    * 
-    * @param value allowed object is {@link TService }
-    * 
-    */
-   public void setService(TService value)
-   {
-      this.service = value;
-   }
-
-   /**
-    * Gets the value of the refList property.
-    * 
-    * @return possible object is {@link TReferenceList }
-    * 
-    */
-   public TReferenceList getRefList()
-   {
-      return refList;
-   }
-
-   /**
-    * Sets the value of the refList property.
-    * 
-    * @param value allowed object is {@link TReferenceList }
-    * 
-    */
-   public void setRefList(TReferenceList value)
-   {
-      this.refList = value;
-   }
-
-   /**
-    * Gets the value of the refSet property.
-    * 
-    * @return possible object is {@link TReferenceList }
-    * 
-    */
-   public TReferenceList getRefSet()
-   {
-      return refSet;
-   }
-
-   /**
-    * Sets the value of the refSet property.
-    * 
-    * @param value allowed object is {@link TReferenceList }
-    * 
-    */
-   public void setRefSet(TReferenceList value)
-   {
-      this.refSet = value;
-   }
-
-   /**
-    * Gets the value of the bean property.
-    * 
-    * @return possible object is {@link TBean }
-    * 
-    */
-   public TBean getBean()
-   {
-      return bean;
-   }
-
-   /**
-    * Sets the value of the bean property.
-    * 
-    * @param value allowed object is {@link TBean }
-    * 
-    */
-   public void setBean(TBean value)
-   {
-      this.bean = value;
-   }
-
-   /**
-    * Gets the value of the reference property.
-    * 
-    * @return possible object is {@link TReference }
-    * 
-    */
-   public TReference getReference()
-   {
-      return reference;
-   }
-
-   /**
-    * Sets the value of the reference property.
-    * 
-    * @param value allowed object is {@link TReference }
-    * 
-    */
-   public void setReference(TReference value)
-   {
-      this.reference = value;
-   }
-
-   /**
-    * Gets the value of the refFIXME property.
-    * 
-    * @return possible object is {@link TRef }
-    * 
-    */
-   public TRef getRefFIXME()
-   {
-      return refFIXME;
-   }
-
-   /**
-    * Sets the value of the refFIXME property.
-    * 
-    * @param value allowed object is {@link TRef }
-    * 
-    */
-   public void setRefFIXME(TRef value)
-   {
-      this.refFIXME = value;
-   }
-
-   /**
-    * Gets the value of the any property.
-    * 
-    * <p>
-    * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the returned list will be present inside the
-    * JAXB object. This is why there is not a <CODE>set</CODE> method for the any property.
-    * 
-    * <p>
-    * For example, to add a new item, do as follows:
-    * 
-    * <pre>
-    * getAny().add(newItem);
-    * </pre>
-    * 
-    * 
-    * <p>
-    * Objects of the following type(s) are allowed in the list {@link Object }
-    * 
-    * 
-    */
-   public List<Object> getAny()
-   {
-      if (any == null)
-      {
-         any = new ArrayList<Object>();
-      }
-      return this.any;
-   }
-
-   /**
-    * Gets the value of the idref property.
-    * 
-    * @return possible object is {@link TRef }
-    * 
-    */
-   public TRef getIdref()
-   {
-      return idref;
-   }
-
-   /**
-    * Sets the value of the idref property.
-    * 
-    * @param value allowed object is {@link TRef }
-    * 
-    */
-   public void setIdref(TRef value)
-   {
-      this.idref = value;
-   }
-
-   /**
-    * Gets the value of the value property.
-    * 
-    * @return possible object is {@link Tvalue }
-    * 
-    */
-   public Tvalue getValue()
-   {
-      return value;
-   }
-
-   /**
-    * Sets the value of the value property.
-    * 
-    * @param value allowed object is {@link Tvalue }
-    * 
-    */
-   public void setValue(Tvalue value)
-   {
-      this.value = value;
-   }
-
-   /**
-    * Gets the value of the list property.
-    * 
-    * @return possible object is {@link Tcollection }
-    * 
-    */
-   public Tcollection getList()
-   {
-      return list;
-   }
-
-   /**
-    * Sets the value of the list property.
-    * 
-    * @param value allowed object is {@link Tcollection }
-    * 
-    */
-   public void setList(Tcollection value)
-   {
-      this.list = value;
-   }
-
-   /**
-    * Gets the value of the set property.
-    * 
-    * @return possible object is {@link Tcollection }
-    * 
-    */
-   public Tcollection getSet()
-   {
-      return set;
-   }
-
-   /**
-    * Sets the value of the set property.
-    * 
-    * @param value allowed object is {@link Tcollection }
-    * 
-    */
-   public void setSet(Tcollection value)
-   {
-      this.set = value;
-   }
-
-   /**
-    * Gets the value of the map property.
-    * 
-    * @return possible object is {@link Tmap }
-    * 
-    */
-   public Tmap getMap()
-   {
-      return map;
-   }
-
-   /**
-    * Sets the value of the map property.
-    * 
-    * @param value allowed object is {@link Tmap }
-    * 
-    */
-   public void setMap(Tmap value)
-   {
-      this.map = value;
-   }
-
-   /**
-    * Gets the value of the array property.
-    * 
-    * @return possible object is {@link Tcollection }
-    * 
-    */
-   public Tcollection getArray()
-   {
-      return array;
-   }
-
-   /**
-    * Sets the value of the array property.
-    * 
-    * @param value allowed object is {@link Tcollection }
-    * 
-    */
-   public void setArray(Tcollection value)
-   {
-      this.array = value;
-   }
-
-   /**
-    * Gets the value of the props property.
-    * 
-    * @return possible object is {@link Tprops }
-    * 
-    */
-   public Tprops getProps()
-   {
-      return props;
-   }
-
-   /**
-    * Sets the value of the props property.
-    * 
-    * @param value allowed object is {@link Tprops }
-    * 
-    */
-   public void setProps(Tprops value)
-   {
-      this.props = value;
-   }
-
-   /**
-    * Gets the value of the null property.
-    * 
-    * @return possible object is {@link Tnull }
-    * 
-    */
-   public Tnull getNull()
-   {
-      return _null;
-   }
-
-   /**
-    * Sets the value of the null property.
-    * 
-    * @param value allowed object is {@link Tnull }
-    * 
-    */
-   public void setNull(Tnull value)
-   {
-      this._null = value;
-   }
-
-   /**
-    * Gets the value of the key property.
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
-   public String getKey()
-   {
-      return key;
-   }
-
-   /**
-    * Sets the value of the key property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setKey(String value)
-   {
-      this.key = value;
-   }
-
-   /**
-    * Gets the value of the keyRef property.
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
-   public String getKeyRef()
-   {
-      return keyRef;
-   }
-
-   /**
-    * Sets the value of the keyRef property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setKeyRef(String value)
-   {
-      this.keyRef = value;
-   }
-
-   /**
-    * Gets the value of the valueFIXME property.
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
-   public String getValueFIXME()
-   {
-      return valueFIXME;
-   }
-
-   /**
-    * Sets the value of the valueFIXME property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setValueFIXME(String value)
-   {
-      this.valueFIXME = value;
-   }
-
-   /**
-    * Gets the value of the valueRef property.
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
-   public String getValueRef()
-   {
-      return valueRef;
-   }
-
-   /**
-    * Sets the value of the valueRef property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setValueRef(String value)
-   {
-      this.valueRef = value;
-   }
-
-}

Deleted: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tnull.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tnull.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tnull.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1,53 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.osgi.blueprint.parser.xb;
-
-// $Id$
-
-/**
- * 
- * 
- * The definition for a <null> value type.
- * 
- * 
- * 
- * <p>
- * Java class for Tnull complex type.
- * 
- * <p>
- * The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType name=&quot;Tnull&quot;&gt;
- *   &lt;complexContent&gt;
- *     &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt;
- *     &lt;/restriction&gt;
- *   &lt;/complexContent&gt;
- * &lt;/complexType&gt;
- * </pre>
- * 
- * 
- */
-public class Tnull
-{
-
-}

Deleted: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tprop.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tprop.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tprop.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1,123 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.osgi.blueprint.parser.xb;
-
-// $Id$
-
-/**
- * Tprop is a single property element for a <props> value type. The property value can be specified using either the attribute, or as value data for the property
- * element.
- * <p>
- * Java class for Tprop complex type.
- * <p>
- * The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType name=&quot;Tprop&quot;&gt;
- *   &lt;complexContent&gt;
- *     &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt;
- *       &lt;attribute name=&quot;key&quot; use=&quot;required&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}TstringValue&quot; /&gt;
- *       &lt;attribute name=&quot;value&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}TstringValue&quot; /&gt;
- *     &lt;/restriction&gt;
- *   &lt;/complexContent&gt;
- * &lt;/complexType&gt;
- * </pre>
- * 
- */
-public class Tprop
-{
-   protected String content;
-   protected String key;
-   protected String value;
-
-   /**
-    * 
-    * 
-    * Tprop is a single property element for a <props> value type. The property value can be specified using either the attribute, or as value data for the property
-    * element.
-    * 
-    * 
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
-   public String getContent()
-   {
-      return content;
-   }
-
-   /**
-    * Sets the value of the content property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setContent(String value)
-   {
-      this.content = value;
-   }
-
-   /**
-    * Gets the value of the key property.
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
-   public String getKey()
-   {
-      return key;
-   }
-
-   /**
-    * Sets the value of the key property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setKey(String value)
-   {
-      this.key = value;
-   }
-
-   /**
-    * Gets the value of the value property.
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
-   public String getValue()
-   {
-      return value;
-   }
-
-   /**
-    * Sets the value of the value property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setValue(String value)
-   {
-      this.value = value;
-   }
-
-}

Deleted: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tprops.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tprops.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tprops.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1,90 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.osgi.blueprint.parser.xb;
-
-// $Id$
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 
- * 
- * Tprops is the type used by the <props> value element. The prop elements are pairs of string-valued keys and values.
- * 
- * 
- * 
- * <p>
- * Java class for Tprops complex type.
- * 
- * <p>
- * The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType name=&quot;Tprops&quot;&gt;
- *   &lt;complexContent&gt;
- *     &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt;
- *       &lt;sequence&gt;
- *         &lt;element name=&quot;prop&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}Tprop&quot; maxOccurs=&quot;unbounded&quot; minOccurs=&quot;0&quot;/&gt;
- *       &lt;/sequence&gt;
- *     &lt;/restriction&gt;
- *   &lt;/complexContent&gt;
- * &lt;/complexType&gt;
- * </pre>
- * 
- * 
- */
-public class Tprops
-{
-
-   protected List<Tprop> prop;
-
-   /**
-    * Gets the value of the prop property.
-    * 
-    * <p>
-    * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to the returned list will be present inside the
-    * JAXB object. This is why there is not a <CODE>set</CODE> method for the prop property.
-    * 
-    * <p>
-    * For example, to add a new item, do as follows:
-    * 
-    * <pre>
-    * getProp().add(newItem);
-    * </pre>
-    * 
-    * 
-    * <p>
-    * Objects of the following type(s) are allowed in the list {@link Tprop }
-    * 
-    * 
-    */
-   public List<Tprop> getProp()
-   {
-      if (prop == null)
-      {
-         prop = new ArrayList<Tprop>();
-      }
-      return this.prop;
-   }
-
-}

Deleted: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TtypedCollection.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TtypedCollection.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TtypedCollection.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1,74 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.osgi.blueprint.parser.xb;
-
-// $Id$
-
-/**
- * TtypeCollection defines comment attributes shared among different collection types that allow a default value type to be specified.
- * 
- * <p>
- * Java class for TtypedCollection complex type.
- * 
- * <p>
- * The following schema fragment specifies the expected content contained within this class.
- * 
- * <pre>
- * &lt;complexType name=&quot;TtypedCollection&quot;&gt;
- *   &lt;complexContent&gt;
- *     &lt;restriction base=&quot;{http://www.w3.org/2001/XMLSchema}anyType&quot;&gt;
- *       &lt;attribute name=&quot;value-type&quot; type=&quot;{http://www.osgi.org/xmlns/blueprint/v1.0.0}Tclass&quot; /&gt;
- *     &lt;/restriction&gt;
- *   &lt;/complexContent&gt;
- * &lt;/complexType&gt;
- * </pre>
- * 
- * 
- */
-public class TtypedCollection
-{
-
-   protected String valueType;
-
-   /**
-    * Gets the value of the valueType property.
-    * 
-    * @return possible object is {@link String }
-    * 
-    */
-   public String getValueType()
-   {
-      return valueType;
-   }
-
-   /**
-    * Sets the value of the valueType property.
-    * 
-    * @param value allowed object is {@link String }
-    * 
-    */
-   public void setValueType(String value)
-   {
-      this.valueType = value;
-   }
-
-}

Deleted: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tvalue.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tvalue.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/Tvalue.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1,59 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.osgi.blueprint.parser.xb;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlType;
-
-import org.jboss.osgi.blueprint.BlueprintContext;
-
-// $Id$
-
-/**
- */
- at XmlType(name = "Tvalue", namespace = BlueprintContext.XMLNS_BLUEPRINT)
-public class Tvalue
-{
-   protected String content;
-   protected String type;
-
-   public String getContent()
-   {
-      return content;
-   }
-
-   public void setContent(String value)
-   {
-      this.content = value;
-   }
-
-   @XmlAttribute
-   public String getType()
-   {
-      return type;
-   }
-
-   public void setType(String value)
-   {
-      this.type = value;
-   }
-}

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/BlueprintMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/BlueprintMetadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/BlueprintMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -30,6 +30,7 @@
 import java.util.Map;
 
 import org.jboss.osgi.blueprint.BlueprintContext;
+import org.jboss.osgi.blueprint.parser.xb.TActivation;
 import org.jboss.osgi.blueprint.parser.xb.TBlueprint;
 import org.jboss.osgi.blueprint.parser.xb.TComponent;
 import org.jboss.osgi.spi.NotImplementedException;
@@ -39,13 +40,6 @@
 /**
  * The blueprint element is the top element.
  * 
- * The definitions consist of two sections: the type-converter section and the components section.
- * 
- * blueprint ::= <type-converters> component 
- * component ::= <bean> | <service> | service-reference 
- * service-reference ::= <reference> | <ref-list> | <ref-set>
- * type-converter ::= <bean> | <ref>
- * 
  * @author thomas.diesler at jboss.com
  * @since 13-May-2009
  */
@@ -59,6 +53,17 @@
       super(context, null);
       this.tBlueprint = tBlueprint;
    }
+   
+   public int getDefaultActivation()
+   {
+      TActivation activation = tBlueprint.getDefaultActivation();
+      if (activation == TActivation.lazy)
+         return ComponentMetadata.ACTIVATION_LAZY;
+      else if (activation == TActivation.eager)
+         return ComponentMetadata.ACTIVATION_EAGER;
+      else
+         throw new IllegalStateException("Unsuported activation code: " + activation);
+   }
 
    public void initialize()
    {

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ComponentMetadataImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ComponentMetadataImpl.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ComponentMetadataImpl.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -23,9 +23,12 @@
 
 // $Id$
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import org.jboss.osgi.blueprint.BlueprintContext;
+import org.jboss.osgi.blueprint.parser.xb.TActivation;
 import org.jboss.osgi.blueprint.parser.xb.TComponent;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
 
@@ -47,7 +50,11 @@
 
    public List<String> getDependsOn()
    {
-      return tComp.getDependsOn();
+      List<String> dependsOn = new ArrayList<String>();
+      if (tComp.getDependsOn() != null)
+         dependsOn = Arrays.asList(tComp.getDependsOn().split("/s"));
+      
+      return dependsOn;
    }
 
    public String getId()
@@ -64,8 +71,19 @@
       return key;
    }
    
-   public int getInitialization()
+   public int getActivation()
    {
-      return tComp.getInitialization();
+      int activationCode = blueprint.getDefaultActivation();
+      TActivation activation = tComp.getActivation();
+      if (activation != null)
+      {
+         if (activation == TActivation.lazy)
+            activationCode = ComponentMetadata.ACTIVATION_LAZY;
+         else if (activation == TActivation.eager)
+            activationCode = ComponentMetadata.ACTIVATION_EAGER;
+         else
+            throw new IllegalStateException("Unsuported activation code: " + activation);
+      }
+      return activationCode;
    }
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ReferenceMetadataImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ReferenceMetadataImpl.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ReferenceMetadataImpl.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -55,4 +55,5 @@
    {
       return "Reference[id=" + getId() + "]";
    }
+
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceMetadataImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceMetadataImpl.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceMetadataImpl.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -55,13 +55,13 @@
    public int getAutoExport()
    {
       int modeValue = AUTO_EXPORT_DISABLED;
-      TAutoExportModes mode = tService.getAutoExportMode();
+      TAutoExportModes mode = tService.getAutoExport();
 
-      if (mode == TAutoExportModes.ALL_CLASSES)
+      if (mode == TAutoExportModes.all_classes)
          modeValue = AUTO_EXPORT_ALL_CLASSES;
-      else if (mode == TAutoExportModes.CLASS_HIERARCHY)
+      else if (mode == TAutoExportModes.class_hierarchy)
          modeValue = AUTO_EXPORT_CLASS_HIERARCHY;
-      else if (mode == TAutoExportModes.INTERFACES)
+      else if (mode == TAutoExportModes.interfaces)
          modeValue = AUTO_EXPORT_INTERFACES;
 
       return modeValue;

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/BlueprintContainer.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/BlueprintContainer.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/BlueprintContainer.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -18,124 +18,82 @@
 import java.util.Collection;
 import java.util.Set;
 
-import org.osgi.framework.BundleContext;
+import org.osgi.service.blueprint.reflect.BeanMetadata;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
+import org.osgi.service.blueprint.reflect.ReferenceListMetadata;
+import org.osgi.service.blueprint.reflect.ReferenceMetadata;
+import org.osgi.service.blueprint.reflect.ServiceMetadata;
+import org.osgi.service.blueprint.reflect.ServiceReferenceMetadata;
 
 /**
- * BlueprintContainer providing access to the components, service exports, and
- * service references of a bundle using blueprint services. Only bundles in the
- * ACTIVE state may have an associated BlueprintContainer. A given BundleContext
- * has at most one associated BlueprintContainer.
- *
- * An instance of BlueprintContainer may be obtained from within a blueprint context by
- * injecting the predefined "blueprintContainer" component.
- * Alternatively you can look up BlueprintContainer services in the service registry.
- * The Constants.BUNDLE_SYMBOLICNAME and Constants.BUNDLE_VERSION service
- * properties can be used to determine which bundle the published BlueprintContainer
- * service is associated with.
- *
- * A BlueprintContainer implementation must support safe concurrent access. It is
- * legal for the set of named components and component metadata to change
- * between invocations on the same thread if another thread is concurrently
- * modifying the same mutable BlueprintContainer implementation object.
- *
- * @see org.osgi.framework.Constants
- *
+ * A Blueprint Container represents the managed state of a Blueprint bundle.
+ * 
+ * A Blueprint Container provides access to all managed components. These are
+ * the beans, services, and service references. Only bundles in the
+ * <code>ACTIVE</code> state (and also the <code>STARTING</code> state for
+ * bundles awaiting lazy activation) can have an associated Blueprint Container.
+ * A given Bundle Context has at most one associated Blueprint Container.
+ * 
+ * A Blueprint Container can be obtained by injecting the predefined
+ * &quot;blueprintContainer&quot; component id. The Blueprint Container is also
+ * registered as a service and its managed components can be queried.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface BlueprintContainer {
-
 	/**
-	 * The container will apply strict compliance rules
+	 * Returns the set of component ids managed by this Blueprint Container.
+	 * 
+	 * @return An immutable Set of Strings, containing the ids of all of the
+	 *         components managed within this Blueprint Container.
 	 */
-	static final int COMPLIANCE_STRICT = 1;
-
-	/**
- 	 * The container will use loose compliance rules
- 	 */
-	static final int COMPLIANCE_LOOSE = 2;
-
-	/**
-	 * The set of component names recognized by the blueprint context.
-	 *
-	 * @return an immutable set (of Strings) containing the names of all of the components within the
-	 * context.
-	 */
 	Set<String> getComponentIds();
 
 	/**
-	 * Get the component instance for a given named component. If the component has
-	 * not yet been instantiated, calling this operation will cause the component instance
-	 * to be created and initialized. If the component
-	 * has a prototype scope then each call to getComponent will return a new
-	 * component instance. If the component has a bundle scope then the component
-	 * instance returned will be the instance for the caller's bundle (and that
-	 * instance will be instantiated if it has not already been created).
-	 *
-	 * Note: calling getComponent from logic executing during the instantiation and
-	 * configuration of a component, before the init method (if specified) has returned,
-	 * may trigger a circular dependency (for a trivial example, consider a component
-	 * that looks itself up by name during its init method). Implementations of the
-	 * Blueprint Service are not required to support cycles in the dependency graph
-	 * and may throw an exception if a cycle is detected. Implementations that can
-	 * support certain kinds of cycles are free to do so.
-	 *
-	 * @param id the name of the component for which the instance is to be
-	 * retrieved.
-	 *
-	 * @return the component instance, the type of the returned object is
-	 * dependent on the component definition, and may be determined by
-	 * introspecting the component metadata.
-	 *
-	 * @throws NoSuchComponentException if the name specified is not the
-	 * name of a component within the context.
+	 * Return the component instance for the specified component id.
+	 * 
+	 * If the component's manager has not yet been activated, calling this
+	 * operation will atomically activate it. If the component has singleton
+	 * scope, the activation will cause the component instance to be created and
+	 * initialized. If the component has prototype scope, then each call to this
+	 * method will return a new component instance.
+	 * 
+	 * @param id The component id for the requested component instance.
+	 * @return A component instance for the component with the specified
+	 *         component id.
+	 * @throws NoSuchComponentException If no component with the specified
+	 *         component id is managed by this Blueprint Container.
 	 */
 	Object getComponentInstance(String id);
 
 	/**
-	 * Get the component metadata for a given named component.
-	 *
-	 * @param id the name of the component for which the metadata is to be
-	 * retrieved.
-	 *
-	 * @return the component metadata for the component.
-	 *
-	 * @throws NoSuchComponentException if the name specified is not the
-	 * name of a component within the context.
+	 * Return the Component Metadata object for the component with the specified
+	 * component id.
+	 * 
+	 * @param id The component id for the requested Component Metadata.
+	 * @return The Component Metadata object for the component with the
+	 *         specified component id.
+	 * @throws NoSuchComponentException If no component with the specified
+	 *         component id is managed by this Blueprint Container.
 	 */
 	ComponentMetadata getComponentMetadata(String id);
 
 	/**
-	 * Returns all ComponentMetadata instances of the given type.  The supported
-	 * metadata types are ComponentMetadata (which returns the metadata for all defined
-     * component types), BeanMetadata, ServiceReferenceMetadata (which returns both
-     * ReferenceMetadata and RefListMetadata instances), ReferenceMetadata,
-     * RefListMetadata, and ServiceMetadata.  The collection will include all
-     * metadata instances of the requested type, including components that are declared
-     * as inline values.
-	 *
-	 * @return an immutable collection of ComponentMetadata objects of the matching type.
+	 * Return all {@link ComponentMetadata} objects of the specified Component
+	 * Metadata type. The supported Component Metadata types are
+	 * {@link ComponentMetadata} (which returns the Component Metadata for all
+	 * defined manager types), {@link BeanMetadata} ,
+	 * {@link ServiceReferenceMetadata} (which returns both
+	 * {@link ReferenceMetadata} and {@link ReferenceListMetadata} objects), and
+	 * {@link ServiceMetadata}. The collection will include all Component
+	 * Metadata objects of the requested type, including components that are
+	 * declared inline.
+	 * 
+	 * @param type The super type or type of the requested Component Metadata
+	 *        objects.
+	 * @return An immutable collection of Component Metadata objects of the
+	 *         specified type.
 	 */
-	<T extends ComponentMetadata> Collection<T>  getMetadata(Class<T> type);
-
-	/**
-	 * Get the bundle context of the bundle this blueprint context is associated
-	 * with.
-	 *
-	 * @return the blueprint context's bundle context
-	 */
-	BundleContext getBundleContext();
-
-
-    /**
-     * Returns the compliance rule in effect for the target
-     * BlueprintContainer.  COMPLIANCE_LOOSE is returned if
-     * any configuration file for the container specifies
-     * loose compliance.
-     *
-     * @return The value COMPLIANCE_STRICT if strict compliance (the
-     *         default) is used for all configuration files, or the
-     *         value COMPLIANCE_LOOSE if loose complance is specified
-     *         in any of the configuration files.
-     */
-    int getCompliance();
+	<T extends ComponentMetadata> Collection<T> getMetadata(Class<T> type);
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/BlueprintEvent.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/BlueprintEvent.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/BlueprintEvent.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -19,211 +19,260 @@
 
 /**
  * A Blueprint Event.
- *
+ * 
  * <p>
- * <code>BlueprintEvent</code> objects are delivered to all registered <code>BlueprintListener</code>
- * service objects. BlueprintEvents must be asynchronously delivered in chronological order
- * with respect to each listener.
- *
+ * <code>BlueprintEvent</code> objects are delivered to all registered
+ * {@link BlueprintListener} services. Blueprint Events must be asynchronously
+ * delivered in chronological order with respect to each listener.
+ * 
  * <p>
- * In addition, when a listener is registered, the blueprint extender
- * will synchronously send to this listener the last event for each blueprint bundle managed
- * by this extender.  This replay of events is designed so that the new listener can
- * be informed of the state of each managed bundle.  Events sent during this replay will
- * have the {@link #replay} flag set. The blueprint extender must ensure that this replay phase
- * does not interfere with new events so that the chronological order of all events received
- * by the listener is preserved. If the last event for a given blueprint bundle is DESTROYED,
- * the extender must not send it during this replay phase.
- *
+ * In addition, after a Blueprint Listener is registered, the Blueprint extender
+ * will synchronously send to this Blueprint Listener the last Blueprint Event
+ * for each ready Blueprint bundle managed by this extender. This
+ * <em>replay</em> of Blueprint Events is designed so that the new Blueprint
+ * Listener can be informed of the state of each Blueprint bundle. Blueprint
+ * Events sent during this replay will have the {@link #isReplay()} flag set.
+ * The Blueprint extender must ensure that this replay phase does not interfere
+ * with new Blueprint Events so that the chronological order of all Blueprint
+ * Events received by the Blueprint Listener is preserved. If the last Blueprint
+ * Event for a given Blueprint bundle is {@link #DESTROYED}, the extender must
+ * not send it during this replay phase.
+ * 
  * <p>
- * A type code is used to identify the type of event. The following event types are defined:
+ * A type code is used to identify the type of event. The following event types
+ * are defined:
  * <ul>
- * <li>{@link #CREATING}
- * <li>{@link #CREATED}
- * <li>{@link #DESTROYING}
- * <li>{@link #DESTROYED}
- * <li>{@link #FAILURE}
- * <li>{@link #GRACE_PERIOD}
- * <li>{@link #WAITING}
+ * <li>{@link #CREATING}</li>
+ * <li>{@link #CREATED}</li>
+ * <li>{@link #DESTROYING}</li>
+ * <li>{@link #DESTROYED}</li>
+ * <li>{@link #FAILURE}</li>
+ * <li>{@link #GRACE_PERIOD}</li>
+ * <li>{@link #WAITING}</li>
  * </ul>
- *
+ * 
  * <p>
- * <h2>Blueprint Events and EventAdmin</h2>
- * In addition to calling the registered {@link BlueprintListener}s, the blueprint extender
- * must also send those events to the EventAdmin service, if it is available. <br/>
- * See {@link EventConstants} for more informations.
- *
+ * In addition to calling the registered {@link BlueprintListener} services, the
+ * Blueprint extender must also send those events to the Event Admin service, if
+ * it is available.
+ * 
  * @see BlueprintListener
  * @see EventConstants
+ * @Immutable
+ * @version $Revision$
  */
 public class BlueprintEvent {
 
 	/**
-	 * The Blueprint extender has started creating a Blueprint Container for the bundle.
+	 * The Blueprint extender has started creating a Blueprint Container for the
+	 * bundle.
 	 */
-	public static final int CREATING = 1;
+	public static final int	CREATING		= 1;
 	/**
-	 * The Blueprint extender has creating a Blueprint Container for the bundle.
-	 * This event is sent after the BlueprintContainer service has been registered.
+	 * The Blueprint extender has created a Blueprint Container for the bundle.
+	 * This event is sent after the Blueprint Container has been registered as a
+	 * service.
 	 */
-	public static final int CREATED = 2;
+	public static final int	CREATED			= 2;
 	/**
-	 * The Blueprint extender has started detroying the Blueprint Container for the bundle.
+	 * The Blueprint extender has started destroying the Blueprint Container for
+	 * the bundle.
 	 */
-	public static final int DESTROYING = 3;
+	public static final int	DESTROYING		= 3;
 	/**
 	 * The Blueprint Container for the bundle has been completely destroyed.
-	 * This event is sent after the BlueprintContainer service has been unregistered.
+	 * This event is sent after the Blueprint Container has been unregistered as
+	 * a service.
 	 */
-	public static final int DESTROYED = 4;
+	public static final int	DESTROYED		= 4;
 	/**
-	 * The Blueprint Container creation for the bundle has failed.
-	 * If this event is sent after a timeout in the Grace Period, the {@link #getDependencies()}
-	 * method must return an array of missing mandatory dependencies.  The event must also contain
-	 * the cause of the failure as a <code>Throwable</code> through the {@link #getException()} method.
+	 * The Blueprint Container creation for the bundle has failed. If this event
+	 * is sent after a timeout in the Grace Period, the
+	 * {@link #getDependencies()} method must return an array of missing
+	 * mandatory dependencies. The event must also contain the cause of the
+	 * failure as a <code>Throwable</code> through the {@link #getCause()}
+	 * method.
 	 */
-	public static final int FAILURE = 5;
+	public static final int	FAILURE			= 5;
 	/**
-	 * The Blueprint Container has entered the Grace Period.
-	 * The list of missing dependencies must be made available through the {@link #getDependencies()}
- 	 * method.  During the grace period, a GRACE_PERIOD event is sent each time the set of
-	 * unsatisfied dependencies changes.
+	 * The Blueprint Container has entered the grace period. The list of missing
+	 * dependencies must be made available through the
+	 * {@link #getDependencies()} method. During the grace period, a
+	 * {@link #GRACE_PERIOD} event is sent each time the set of unsatisfied
+	 * dependencies changes.
 	 */
-	public static final int GRACE_PERIOD = 6;
+	public static final int	GRACE_PERIOD	= 6;
 	/**
-	 * The Blueprint Extender is waiting on the availability of a service to satisfy an
-	 * invocation on a referenced service.
-	 * The missing dependency must be made available through the {@link #getDependencies()}
-	 * method which will return an array containing one filter object as a String.
+	 * The Blueprint Container is waiting on the availability of a service to
+	 * satisfy an invocation on a referenced service. The missing dependency
+	 * must be made available through the {@link #getDependencies()} method
+	 * which will return an array containing one filter object as a String.
 	 */
-	public static final int WAITING = 7;
+	public static final int	WAITING			= 7;
 
-
 	/**
 	 * Type of this event.
-	 *
+	 * 
 	 * @see #getType()
 	 */
-	private final int type;
+	private final int		type;
 	/**
-	 * The time when the event occured.
-	 *
+	 * The time when the event occurred.
+	 * 
 	 * @see #getTimestamp()
 	 */
-	private final long timestamp;
+	private final long		timestamp;
 	/**
-	 * The blueprint bundle.
-	 *
+	 * The Blueprint bundle.
+	 * 
 	 * @see #getBundle()
 	 */
-	private final Bundle bundle;
+	private final Bundle	bundle;
 	/**
- 	 * The blueprint extender bundle.
- 	 *
- 	 * @see #getExtenderBundle()
- 	 */
-	private final Bundle extenderBundle;
+	 * The Blueprint extender bundle.
+	 * 
+	 * @see #getExtenderBundle()
+	 */
+	private final Bundle	extenderBundle;
 	/**
-	 * An array containing filters identifying the missing dependencies.
-	 *
+	 * An array containing filters identifying the missing dependencies. Must
+	 * not be <code>null</code> when the event type requires it.
+	 * 
 	 * @see #getDependencies()
 	 */
-	private final String[] dependencies;
+	private final String[]	dependencies;
 	/**
 	 * Cause of the failure.
-	 *
-	 * @see #getException()
+	 * 
+	 * @see #getCause()
 	 */
-	private final Throwable exception;
+	private final Throwable	cause;
 	/**
- 	 * Indicate if this event is a replay event or not.
-	 *
+	 * Indicate if this event is a replay event or not.
+	 * 
 	 * @see #isReplay()
 	 */
-	private final boolean replay;
+	private final boolean	replay;
 
-
 	/**
-	 * Create a simple BlueprintEvent object.
-	 *
-	 * @param type   The type of the event.
-	 * @param bundle The managed bundle this event is originating from.
-	 * @param extenderBundle
-	 *               The bundle of the blueprint extender that is generating
-	 *               the event.
+	 * Create a simple <code>BlueprintEvent</code> object.
+	 * 
+	 * @param type The type of this event.
+	 * @param bundle The Blueprint bundle associated with this event. This
+	 *        parameter must not be <code>null</code>.
+	 * @param extenderBundle The Blueprint extender bundle that is generating
+	 *        this event. This parameter must not be <code>null</code>.
 	 */
 	public BlueprintEvent(int type, Bundle bundle, Bundle extenderBundle) {
 		this(type, bundle, extenderBundle, null, null);
 	}
 
-
 	/**
-	 * Create a BlueprintEvent object associated with a
-	 * set of dependencies.
-	 *
-	 * @param type   The type of the event.
-	 * @param bundle The managed bundle this event is originating from.
-	 * @param extenderBundle
-	 *               The bundle of the blueprint extender that is generating
-	 *               the event.
-	 * @param dependencies
-	 *               An array of String filters for each dependency associated
-	 *               with this event.
+	 * Create a <code>BlueprintEvent</code> object associated with a set of
+	 * dependencies.
+	 * 
+	 * @param type The type of this event.
+	 * @param bundle The Blueprint bundle associated with this event. This
+	 *        parameter must not be <code>null</code>.
+	 * @param extenderBundle The Blueprint extender bundle that is generating
+	 *        this event. This parameter must not be <code>null</code>.
+	 * @param dependencies An array of <code>String</code> filters for each
+	 *        dependency associated with this event. Must be a non-empty array
+	 *        for event types {@link #GRACE_PERIOD} and {@link #WAITING}. It is
+	 *        optional for event type {@link #FAILURE}. Must be
+	 *        <code>null</code> for other event types.
 	 */
-	public BlueprintEvent(int type, Bundle bundle, Bundle extenderBundle, String[] dependencies) {
+	public BlueprintEvent(int type, Bundle bundle, Bundle extenderBundle,
+			String[] dependencies) {
 		this(type, bundle, extenderBundle, dependencies, null);
 	}
 
-
 	/**
-	 * Create a BlueprintEvent object associated with a
-	 * failure cause.
-	 *
-	 * @param type      The type of the event.
-	 * @param bundle    The managed bundle this event is originating from.
-	 * @param extenderBundle
-	 *                  The bundle of the blueprint extender that is generating
-	 *                  the event.
-	 * @param exception A Throwable object describing the root cause of the
-	 *                  event.
+	 * Create a <code>BlueprintEvent</code> object associated with a failure
+	 * cause.
+	 * 
+	 * @param type The type of this event.
+	 * @param bundle The Blueprint bundle associated with this event. This
+	 *        parameter must not be <code>null</code>.
+	 * @param extenderBundle The Blueprint extender bundle that is generating
+	 *        this event. This parameter must not be <code>null</code>.
+	 * @param cause A <code>Throwable</code> object describing the root cause of
+	 *        the event. May be <code>null</code>.
 	 */
-	public BlueprintEvent(int type, Bundle bundle, Bundle extenderBundle, Throwable exception) {
-		this(type, bundle, extenderBundle, null, exception);
+	public BlueprintEvent(int type, Bundle bundle, Bundle extenderBundle,
+			Throwable cause) {
+		this(type, bundle, extenderBundle, null, cause);
 	}
 
-
 	/**
-	 * Create a BlueprintEvent object associated with a
-	 * failure cause and related to a set of dependencies.
-	 *
-	 * @param type      The type of the event.
-	 * @param bundle    The managed bundle this event is originating from.
-	 * @param extenderBundle
-	 *                  The bundle of the blueprint extender that is generating
-	 *                  the event.
-	 * @param dependencies
-	 *               An array of String filters for each dependency associated
-	 *               with this event.
-	 * @param exception A Throwable object describing the root cause of the
-	 *                  event.
+	 * Create a <code>BlueprintEvent</code> object associated with a failure
+	 * cause and a set of dependencies.
+	 * 
+	 * @param type The type of this event.
+	 * @param bundle The Blueprint bundle associated with this event. This
+	 *        parameter must not be <code>null</code>.
+	 * @param extenderBundle The Blueprint extender bundle that is generating
+	 *        this event. This parameter must not be <code>null</code>.
+	 * @param dependencies An array of <code>String</code> filters for each
+	 *        dependency associated with this event. Must be a non-empty array
+	 *        for event types {@link #GRACE_PERIOD} and {@link #WAITING}. It is
+	 *        optional for event type {@link #FAILURE}. Must be
+	 *        <code>null</code> for other event types.
+	 * @param cause A <code>Throwable</code> object describing the root cause of
+	 *        this event. May be <code>null</code>.
 	 */
-	public BlueprintEvent(int type, Bundle bundle, Bundle extenderBundle, String[] dependencies, Throwable exception) {
+	public BlueprintEvent(int type, Bundle bundle, Bundle extenderBundle,
+			String[] dependencies, Throwable cause) {
 		this.type = type;
 		this.timestamp = System.currentTimeMillis();
 		this.bundle = bundle;
 		this.extenderBundle = extenderBundle;
 		this.dependencies = dependencies;
-		this.exception = exception;
+		this.cause = cause;
 		this.replay = false;
+		if (bundle == null) {
+			throw new NullPointerException("bundle must not be null");
+		}
+		if (extenderBundle == null) {
+			throw new NullPointerException("extenderBundle must not be null");
+		}
+		switch (type) {
+			case WAITING :
+			case GRACE_PERIOD :
+				if (dependencies == null) {
+					throw new NullPointerException(
+							"dependencies must not be null");
+				}
+				if (dependencies.length == 0) {
+					throw new IllegalArgumentException(
+							"dependencies must not be length zero");
+				}
+				break;
+			case FAILURE :
+				if ((dependencies != null) && (dependencies.length == 0)) {
+					throw new IllegalArgumentException(
+							"dependencies must not be length zero");
+				}
+				break;
+			default :
+				if (dependencies != null) {
+					throw new IllegalArgumentException(
+							"dependencies must be null");
+				}
+				break;
+		}
 	}
 
 	/**
- 	 * Create a new blueprint event from the given blueprint event.
- 	 * The timestamp property will be copied from the original event and only the
- 	 * replay property will be overriden with the given value.
- 	 *
-	 * @param event the original event to copy
-	 * @param replay if the copied event should be used as a replay event
+	 * Create a new <code>BlueprintEvent</code> from the specified
+	 * <code>BlueprintEvent</code>. The <code>timestamp</code> property will be
+	 * copied from the original event and only the replay property will be
+	 * overridden with the given value.
+	 * 
+	 * @param event The original <code>BlueprintEvent</code> to copy. Must not
+	 *        be <code>null</code>.
+	 * @param replay <code>true</code> if this event should be used as a replay
+	 *        event.
 	 */
 	public BlueprintEvent(BlueprintEvent event, boolean replay) {
 		this.type = event.type;
@@ -231,7 +280,7 @@
 		this.bundle = event.bundle;
 		this.extenderBundle = event.extenderBundle;
 		this.dependencies = event.dependencies;
-		this.exception = event.exception;
+		this.cause = event.cause;
 		this.replay = replay;
 	}
 
@@ -240,15 +289,15 @@
 	 * <p>
 	 * The type values are:
 	 * <ul>
-	 * <li>{@link #CREATING}
-	 * <li>{@link #CREATED}
-	 * <li>{@link #DESTROYING}
-	 * <li>{@link #DESTROYED}
-	 * <li>{@link #FAILURE}
-	 * <li>{@link #GRACE_PERIOD}
-	 * <li>{@link #WAITING}
+	 * <li>{@link #CREATING}</li>
+	 * <li>{@link #CREATED}</li>
+	 * <li>{@link #DESTROYING}</li>
+	 * <li>{@link #DESTROYED}</li>
+	 * <li>{@link #FAILURE}</li>
+	 * <li>{@link #GRACE_PERIOD}</li>
+	 * <li>{@link #WAITING}</li>
 	 * </ul>
-	 *
+	 * 
 	 * @return The type of this event.
 	 */
 	public int getType() {
@@ -256,61 +305,62 @@
 	}
 
 	/**
-	 * Return the time at which this event occured.
-	 *
-	 * @return The time at which this event occured.
+	 * Return the time at which this event was created.
+	 * 
+	 * @return The time at which this event was created.
 	 */
 	public long getTimestamp() {
 		return timestamp;
 	}
 
 	/**
-	 * Return the blueprint bundle.
-	 *
-	 * @return The blueprint bundle.  Never <code>null</code>.
+	 * Return the Blueprint bundle associated with this event.
+	 * 
+	 * @return The Blueprint bundle associated with this event.
 	 */
 	public Bundle getBundle() {
 		return bundle;
 	}
 
 	/**
-	 * Return the Bundle of the blueprint extender.
-	 *
-	 * @return The Bundle of the blueprint extender.  Never <code>null</code>.
+	 * Return the Blueprint extender bundle that is generating this event.
+	 * 
+	 * @return The Blueprint extender bundle that is generating this event.
 	 */
 	public Bundle getExtenderBundle() {
 		return extenderBundle;
 	}
 
 	/**
-	 * Return the filters identifying the missing dependencies that caused this event.
-	 * <p>
-	 * This field is only valid for {@link #WAITING},
-	 * {@link #GRACE_PERIOD} and {@link #FAILURE}
-	 * events.
-	 *
-	 * @return The missing dependencies informations.  May be <code>null</code>.
+	 * Return the filters identifying the missing dependencies that caused this
+	 * event.
+	 * 
+	 * @return The filters identifying the missing dependencies that caused this
+	 *         event if the event type is one of {@link #WAITING},
+	 *         {@link #GRACE_PERIOD} or {@link #FAILURE} or <code>null</code>
+	 *         for the other event types.
 	 */
 	public String[] getDependencies() {
-		return dependencies;
+		return dependencies == null ? null : (String[]) dependencies.clone();
 	}
 
 	/**
-	 * Return the cause for a {@link #FAILURE} event.
-	 *
-	 * @return The cause of the failure.  May be <code>null</code>.
+	 * Return the cause for this {@link #FAILURE} event.
+	 * 
+	 * @return The cause of the failure for this event. May be <code>null</code>
+	 *         .
 	 */
-	public Throwable getException() {
-		return exception;
+	public Throwable getCause() {
+		return cause;
 	}
 
 	/**
- 	 * Return the fact that this event is a replay event or not.
-	 *
-	 * @return a boolean indicating if this event is a replay event.
+	 * Return whether this event is a replay event.
+	 * 
+	 * @return <code>true</code> if this event is a replay event and
+	 *         <code>false</code> otherwise.
 	 */
 	public boolean isReplay() {
 		return replay;
 	}
-
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/BlueprintListener.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/BlueprintListener.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/BlueprintListener.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -16,17 +16,37 @@
 package org.osgi.service.blueprint.container;
 
 /**
- * Listener for <code>BlueprintEvent</code>s.
- *
+ * A <code>BlueprintEvent</code> Listener.
+ * 
+ * <p>
+ * To receive Blueprint Events, a bundle must register a Blueprint Listener
+ * service.
+ * 
+ * After a Blueprint Listener is registered, the Blueprint extender must
+ * synchronously send to this Blueprint Listener the last Blueprint Event for
+ * each ready Blueprint bundle managed by this extender. This replay of
+ * Blueprint Events is designed so that the new Blueprint Listener can be
+ * informed of the state of each Blueprint bundle. Blueprint Events sent during
+ * this replay will have the {@link BlueprintEvent#isReplay() isReplay()} flag
+ * set. The Blueprint extender must ensure that this replay phase does not
+ * interfere with new Blueprint Events so that the chronological order of all
+ * Blueprint Events received by the Blueprint Listener is preserved. If the last
+ * Blueprint Event for a given Blueprint bundle is
+ * {@link BlueprintEvent#DESTROYED DESTROYED}, the extender must not send it
+ * during this replay phase.
+ * 
  * @see BlueprintEvent
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface BlueprintListener {
 
 	/**
- 	 * Receives notifications of a blueprint event.
- 	 *
- 	 * @param event The <code>BlueprintEvent</code>.
- 	 */
+	 * Receives notifications of a Blueprint Event.
+	 * 
+	 * Implementers should quickly process the event and return.
+	 * 
+	 * @param event The {@link BlueprintEvent}.
+	 */
 	void blueprintEvent(BlueprintEvent event);
-
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/ComponentDefinitionException.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/ComponentDefinitionException.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/ComponentDefinitionException.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -16,53 +16,50 @@
 package org.osgi.service.blueprint.container;
 
 /**
- * Exception thrown when a configuration-related error occurs during
- * creation of a module context.
+ * A Blueprint exception indicating that a component definition is in error.
+ * 
+ * This exception is thrown when a configuration-related error occurs during
+ * creation of a Blueprint Container.
+ * 
+ * @version $Revision$
  */
 public class ComponentDefinitionException extends RuntimeException {
+	private static final long	serialVersionUID	= 1L;
 
-   private static final long serialVersionUID = 1L;
-
-
-   /**
-	 * Creates a <code>ComponentDefinitionException</code> with no message or
-	 * exception cause.
+	/**
+	 * Creates a Component Definition Exception with no message or exception
+	 * cause.
 	 */
 	public ComponentDefinitionException() {
 		super();
 	}
 
-
 	/**
-	 * Creates a <code>ComponentDefinitionException</code> with the specified message
-	 *
-	 * @param msg The associated message.
+	 * Creates a Component Definition Exception with the specified message
+	 * 
+	 * @param explanation The associated message.
 	 */
 	public ComponentDefinitionException(String explanation) {
 		super(explanation);
 	}
 
-
 	/**
-	 * Creates a <code>ComponentDefinitionException</code> with the specified message and
+	 * Creates a Component Definition Exception with the specified message and
 	 * exception cause.
-	 *
-	 * @param msg The associated message.
+	 * 
+	 * @param explanation The associated message.
 	 * @param cause The cause of this exception.
 	 */
 	public ComponentDefinitionException(String explanation, Throwable cause) {
 		super(explanation, cause);
 	}
 
-
 	/**
-	 * Creates a <code>ComponentDefinitionException</code> with the
-	 * exception cause.
-	 *
+	 * Creates a Component Definition Exception with the exception cause.
+	 * 
 	 * @param cause The cause of this exception.
 	 */
 	public ComponentDefinitionException(Throwable cause) {
 		super(cause);
 	}
-
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/Converter.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/Converter.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/Converter.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -16,29 +16,36 @@
 package org.osgi.service.blueprint.container;
 
 /**
- * Provides access to the type conversions (both predefined and user registered)
- * that are defined for the blueprint container.
+ * Type converter to convert an object to a target type.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface Converter {
 
 	/**
-	 * Check if the converter is able to convert the given value to the specified
-	 * type.
-	 *
-	 * @return <code>true</code> if the conversion is possible, <code>false</code> otherwise.
+	 * Return if this converter is able to convert the specified object to the
+	 * specified type.
+	 * 
+	 * @param sourceObject The source object <code>s</code> to convert.
+	 * @param targetType The target type <code>T</code>.
+	 * 
+	 * @return <code>true</code> if the conversion is possible,
+	 *         <code>false</code> otherwise.
 	 */
-	boolean canConvert(Object fromValue, Class<?> toType);
+	boolean canConvert(Object sourceObject, ReifiedType targetType);
 
 	/**
-	 * Convert an object to an instance of the given class, using the built-in and 
-	 * user-registered type converters as necessary.
-	 * @param fromValue the object to be converted
-	 * @param toType the type that the instance is to be converted to
-	 * @return an instance of the class 'toType'
-	 * @throws Exception if the conversion cannot succeed. This exception is
-	 * checked because callers should expect that not all source objects
-	 * can be successfully converted.
+	 * Convert the specified object to an instance of the specified type.
+	 * 
+	 * @param sourceObject The source object <code>s</code> to convert.
+	 * @param targetType The target type <code>T</code>.
+	 * @return An instance with a type that is assignable from targetType's raw
+	 *         class
+	 * @throws Exception If the conversion cannot succeed. This exception should
+	 *         not be thrown when the {@link #canConvert canConvert} method has
+	 *         returned <code>true</code>.
 	 */
-	Object convert(Object fromValue, Class<?> toType) throws Exception;
-	
+	Object convert(Object sourceObject, ReifiedType targetType)
+			throws Exception;
 }
\ No newline at end of file

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/EventConstants.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/EventConstants.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/EventConstants.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -15,164 +15,175 @@
  */
 package org.osgi.service.blueprint.container;
 
-import org.osgi.framework.Bundle;
-
 /**
- * Event property names used in EventAdmin events published for a
- * blueprint container.
- *
- * Each type of event is sent to a different topic:<br/>
- * <pre>
- *   org/osgi/service/blueprint/container/&lt;event-type&gt;
- * </pre>
- * where <code>&lt;event-type&gt;</code> can have the values <code>CREATING</code>, <code>CREATED</code>,
- * <code>DESTROYING</code>, <code>DESTROYED</code>, <code>FAILURE</code>, <code>GRACE_PERIOD</code> or
- * <code>WAITING</code>. <br/>
- * Such events have the following properties:<ul>
- *   <li><code>type<code>
- *   <li><code>event<code>
- *   <li><code>timestamp<code>
- *   <li><code>bundle<code>
- *   <li><code>bundle.symbolicName<code>
- *   <li><code>bundle.id<code>
- *   <li><code>bundle.version<code>
- *   <li><code>extender.bundle<code>
- *   <li><code>extender.bundle.symbolicName<code>
- *   <li><code>extender.bundle.id<code>
- *   <li><code>extender.bundle.version<code>
- *   <li><code>dependencies<code>
- *   <li><code>cause<code>
+ * Event property names used in Event Admin events published by a Blueprint
+ * Container.
+ * 
+ * <p>
+ * Each type of event is sent to a different topic:
+ * 
+ * <p>
+ * <code>org/osgi/service/blueprint/container/</code><em>&lt;event-type&gt;</em>
+ * 
+ * <p>
+ * where <em>&lt;event-type&gt;</em> can have the values
+ * {@link BlueprintEvent#CREATING CREATING}, {@link BlueprintEvent#CREATED
+ * CREATED}, {@link BlueprintEvent#DESTROYING DESTROYING},
+ * {@link BlueprintEvent#DESTROYED DESTROYED}, {@link BlueprintEvent#FAILURE
+ * FAILURE}, {@link BlueprintEvent#GRACE_PERIOD GRACE_PERIOD}, or
+ * {@link BlueprintEvent#WAITING WAITING}.
+ * 
+ * <p>
+ * Such events have the following properties:
+ * <ul>
+ * <li>{@link #TYPE type}</li>
+ * <li>{@link #EVENT event}</li>
+ * <li>{@link #TIMESTAMP timestamp}</li>
+ * <li>{@link #BUNDLE bundle}</li>
+ * <li>{@link #BUNDLE_SYMBOLICNAME bundle.symbolicName}</li>
+ * <li>{@link #BUNDLE_ID bundle.id}</li>
+ * <li>{@link #BUNDLE_VERSION bundle.version}</li>
+ * <li>{@link #EXTENDER_BUNDLE_SYMBOLICNAME extender.bundle.symbolicName}</li>
+ * <li>{@link #EXTENDER_BUNDLE_ID extender.bundle.id}</li>
+ * <li>{@link #EXTENDER_BUNDLE_VERSION extender.bundle.version}</li>
+ * <li>{@link #DEPENDENCIES dependencies}</li>
+ * <li>{@link #CAUSE cause}</li>
  * </ul>
+ * 
+ * @Immutable
+ * @version $Revision$
  */
-public interface EventConstants {
-	
+public class EventConstants {
+	private EventConstants() {
+		// non-instantiable class
+	}
+
 	/**
-	 * The type of the event that has been issued.
-	 * This property is of type {@link java.lang.Integer} and can take one of the values defined in {@link BlueprintEvent}.
+	 * The type of the event that has been issued. This property is of type
+	 * <code>Integer</code> and can take one of the values defined in
+	 * {@link BlueprintEvent}.
 	 */
 	public static final String TYPE = "type";
-	
+
 	/**
- 	 * The <code>BlueprintEvent</code> that caused this event.
- 	 * This property is of type {@link BlueprintEvent}.
- 	 */
+	 * The <code>BlueprintEvent</code> object that caused this event. This
+	 * property is of type {@link BlueprintEvent}.
+	 */
 	public static final String EVENT = "event";
 
 	/**
- 	 * The type of the event that has been issued.
-	 * This property is of type {@link java.lang.Long}.
- 	 */
+	 * The time the event was created. This property is of type
+	 * <code>Long</code>.
+	 */
 	public static final String TIMESTAMP = "timestamp";
-	
+
 	/**
- 	 * The bundle property defining the blueprint bundle for which an event has been issued.
-	 * This property is of type {@link org.osgi.framework.Bundle}.
- 	 *
- 	 * @see Bundle
- 	 */
+	 * The Blueprint bundle associated with this event. This property is of type
+	 * <code>Bundle</code>.
+	 */
 	public static final String BUNDLE = "bundle";
 
 	/**
- 	 * The bundle id property defining the id of the blueprint bundle for which an event has been issued.
-	 * This property is of type {@link java.lang.Integer}.
- 	 */
+	 * The bundle id of the Blueprint bundle associated with this event. This
+	 * property is of type <code>Long</code>.
+	 */
 	public static final String BUNDLE_ID = "bundle.id";
 
 	/**
- 	 * The bundle symbolic name property defining the symbolic name of
- 	 * the blueprint bundle for which an event has been issued.
-	 * This property is of type {@link java.lang.String}.
- 	 */
+	 * The bundle symbolic name of the Blueprint bundle associated with this
+	 * event. This property is of type <code>String</code>.
+	 */
 	public static final String BUNDLE_SYMBOLICNAME = "bundle.symbolicName";
 
 	/**
-  	 * The bundle id property defining the id of the blueprint bundle for which an event has been issued.
- 	 * This property is of type {@link java.lang.Integer}.
- 	 */
+	 * The bundle version of the Blueprint bundle associated with this event.
+	 * This property is of type <code>Version</code>.
+	 */
 	public static final String BUNDLE_VERSION = "bundle.version";
 
 	/**
-	 * The extender bundle property defining the extender bundle processing the
-	 * blueprint container for which an event has been issued.
-	 * This property is of type {@link org.osgi.framework.Bundle}.
-	 *
-	 * @see Bundle
+	 * The Blueprint extender bundle that is generating this event. This
+	 * property is of type <code>Bundle</code>.
 	 */
 	public static final String EXTENDER_BUNDLE = "extender.bundle";
 
 	/**
-	 * The extender bundle id property defining the id of the extender bundle
-	 * processing the blueprint container for which an event has been issued.
-	 * This property is of type {@link java.lang.Integer}.
+	 * The bundle id of the Blueprint extender bundle that is generating this
+	 * event. This property is of type <code>Long</code>.
 	 */
 	public static final String EXTENDER_BUNDLE_ID = "extender.bundle.id";
 
 	/**
-	 * The extender bundle symbolic name property defining the symbolic name of
-	 * the extender bundle processing the blueprint container for which an event
-	 * has been issued.
-	 * This property is of type {@link java.lang.String}.
+	 * The bundle symbolic of the Blueprint extender bundle that is generating
+	 * this event. This property is of type <code>String</code>.
 	 */
 	public static final String EXTENDER_BUNDLE_SYMBOLICNAME = "extender.bundle.symbolicName";
 
 	/**
-  	 * The extender bundle version property defining the version of the extender bundle
- 	 * processing the blueprint container for which an event has been issued.
- 	 * This property is of type {@link java.lang.Integer}.
- 	 */
+	 * The bundle version of the Blueprint extender bundle that is generating
+	 * this event. This property is of type <code>Version</code>.
+	 */
 	public static final String EXTENDER_BUNDLE_VERSION = "extender.bundle.version";
 
 	/**
- 	 * The dependencies property containing an array of filters describing the missing
- 	 * mandatory dependencies for a FAILED, GRACE_PERIOD or WAITING event.
-	 * This property is an array of {@link java.lang.String}.
- 	 */
+	 * The filters identifying the missing dependencies that caused this event
+	 * for a {@link BlueprintEvent#FAILURE FAILURE},
+	 * {@link BlueprintEvent#GRACE_PERIOD GRACE_PERIOD}, or
+	 * {@link BlueprintEvent#WAITING WAITING} event. This property type is an
+	 * array of <code>String</code>.
+	 */
 	public static final String DEPENDENCIES = "dependencies";
 
 	/**
- 	 * The exception property containing the cause for a FAILED event.
-	 * This property is of type {@link java.lang.Throwable}.
- 	 */
-	public static final String EXCEPTION = "exception";
+	 * The cause for a {@link BlueprintEvent#FAILURE FAILURE} event. This
+	 * property is of type <code>Throwable</code>.
+	 */
+	public static final String CAUSE = "cause";
 
 	/**
-	 * Topic prefix for all events issued by the Blueprint Service
+	 * Topic prefix for all events issued by the Blueprint Container
 	 */
-	public static final String TOPIC_BLUEPRINT_EVENTS = "org/osgi/service/blueprint";
+	public static final String TOPIC_BLUEPRINT_EVENTS = "org/osgi/service/blueprint/container";
 
 	/**
 	 * Topic for Blueprint Container CREATING events
 	 */
-	public static final String TOPIC_CREATING = TOPIC_BLUEPRINT_EVENTS + "/container/CREATING";
+	public static final String TOPIC_CREATING = TOPIC_BLUEPRINT_EVENTS
+			+ "/CREATING";
 
 	/**
- 	 * Topic for Blueprint Container CREATED events
- 	 */
-	public static final String TOPIC_CREATED = TOPIC_BLUEPRINT_EVENTS + "/container/CREATED";
+	 * Topic for Blueprint Container CREATED events
+	 */
+	public static final String TOPIC_CREATED = TOPIC_BLUEPRINT_EVENTS
+			+ "/CREATED";
 
 	/**
- 	 * Topic for Blueprint Container DESTROYING events
- 	 */
-	public static final String TOPIC_DESTROYING = TOPIC_BLUEPRINT_EVENTS + "/container/DESTROYING";
+	 * Topic for Blueprint Container DESTROYING events
+	 */
+	public static final String TOPIC_DESTROYING = TOPIC_BLUEPRINT_EVENTS
+			+ "/DESTROYING";
 
 	/**
 	 * Topic for Blueprint Container DESTROYED events
 	 */
-	public static final String TOPIC_DESTROYED = TOPIC_BLUEPRINT_EVENTS + "/container/DESTROYED";
+	public static final String TOPIC_DESTROYED = TOPIC_BLUEPRINT_EVENTS
+			+ "/DESTROYED";
 
 	/**
- 	 * Topic for Blueprint Container FAILURE events
- 	 */
-	public static final String TOPIC_FAILURE = TOPIC_BLUEPRINT_EVENTS + "/container/FAILURE";
+	 * Topic for Blueprint Container FAILURE events
+	 */
+	public static final String TOPIC_FAILURE = TOPIC_BLUEPRINT_EVENTS
+			+ "/FAILURE";
 
 	/**
- 	 * Topic for Blueprint Container GRACE_PERIOD events
- 	 */
-	public static final String TOPIC_GRACE_PERIOD = TOPIC_BLUEPRINT_EVENTS + "/container/GRACE_PERIOD";
+	 * Topic for Blueprint Container GRACE_PERIOD events
+	 */
+	public static final String TOPIC_GRACE_PERIOD = TOPIC_BLUEPRINT_EVENTS
+			+ "/GRACE_PERIOD";
 
 	/**
 	 * Topic for Blueprint Container WAITING events
 	 */
-	public static final String TOPIC_WAITING = TOPIC_BLUEPRINT_EVENTS + "/container/WAITING";
-
+	public static final String TOPIC_WAITING = TOPIC_BLUEPRINT_EVENTS
+			+ "/WAITING";
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/NoSuchComponentException.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/NoSuchComponentException.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/NoSuchComponentException.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -16,47 +16,50 @@
 package org.osgi.service.blueprint.container;
 
 /**
- * Thrown when an attempt is made to lookup a component by name and no such named
- * component exists in the blueprint container.
+ * A Blueprint exception indicating that a component does not exist in a
+ * Blueprint Container.
+ * 
+ * This exception is thrown when an attempt is made to create a component
+ * instance or lookup Component Metadata using a component id that does not
+ * exist in the Blueprint Container.
+ * 
+ * @version $Revision$
  */
 public class NoSuchComponentException extends RuntimeException {
-
-   private static final long serialVersionUID = 1L;
-   
-   /**
-	 * The name of the component request that generated the
-	 * exception.
+	private static final long	serialVersionUID	= 1L;
+	/**
+	 * The requested component id that generated the exception.
 	 */
-	private final String componentName;
+	private final String		componentId;
 
 	/**
-	 * Create an exception for a single component name request.
-	 *
-	 * @param componentName
-	 *               The name of the non-existent component.
+	 * Create a No Such Component Exception for a non-existent component.
+	 * 
+	 * @param msg The associated message.
+	 * @param id The id of the non-existent component.
 	 */
-	public NoSuchComponentException(String componentName) {
-		this.componentName = componentName;
+	public NoSuchComponentException(String msg, String id) {
+		super(msg);
+		this.componentId = id;
 	}
 
 	/**
-	 * Returns the component name that generated the exception.
-	 *
-	 * @return The String name of the component associated with an unresolved
-	 *         request.
+	 * Create a No Such Component Exception for a non-existent component.
+	 * 
+	 * @param id The id of the non-existent component.
 	 */
-	public String getComponentName() {
-		return this.componentName;
+	public NoSuchComponentException(String id) {
+		super("No component with id '" + (id == null ? "<null>" : id)
+				+ "' could be found");
+		this.componentId = id;
 	}
 
 	/**
-	 * Returns a human readable message associated with the exception.
-	 *
-	 * @return The descriptive message for the exception.
+	 * Returns the id of the non-existent component.
+	 * 
+	 * @return The id of the non-existent component.
 	 */
-	public String getMessage() {
-		return "No component named '" +
-		       (this.componentName == null ? "<null>" : this.componentName) +
-		       "' could be found";
+	public String getComponentId() {
+		return componentId;
 	}
 }

Added: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/ReifiedType.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/ReifiedType.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/ReifiedType.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.container;
+
+/**
+ * Provides access to a concrete type and its optional generic type parameters.
+ * 
+ * <p>
+ * Java 5 and later support generic types. These types consist of a raw class
+ * with type parameters. This class models such a <code>Type</code> class but
+ * ensures that the type is <em>reified</em>. Reification means that the Type
+ * graph associated with a Java 5 <code>Type</code> instance is traversed until
+ * the type becomes a concrete class. This class is available with the
+ * {@link #getRawClass()} method. The optional type parameters are recursively
+ * represented as Reified Types.
+ * 
+ * <p>
+ * In Java 1.4, a class has by definition no type parameters. This class
+ * implementation provides the Reified Type for Java 1.4 by making the raw class
+ * the Java 1.4 class and using a Reified Type based on the <code>Object</code>
+ * class for any requested type parameter.
+ * 
+ * <p>
+ * A Blueprint extender implementations can subclass this class and provide
+ * access to the generic type parameter graph for conversion. Such a subclass
+ * must <em>reify</em> the different Java 5 <code>Type</code> instances into the
+ * reified form. That is, a form where the raw Class is available with its
+ * optional type parameters as Reified Types.
+ * 
+ * @Immutable
+ * @version $Revision: 7564 $
+ */
+ at SuppressWarnings("unchecked")
+public class ReifiedType {
+	private final static ReifiedType	OBJECT	= new ReifiedType(Object.class);
+
+   private final Class					clazz;
+
+	/**
+	 * Create a Reified Type for a raw Java class without any generic type
+	 * parameters. Subclasses can provide the optional generic type parameter
+	 * information. Without subclassing, this instance has no type parameters.
+	 * 
+	 * @param clazz The raw class of the Reified Type.
+	 */
+	public ReifiedType(Class clazz) {
+		this.clazz = clazz;
+	}
+
+	/**
+	 * Return the raw class represented by this type.
+	 * 
+	 * The raw class represents the concrete class that is associated with a
+	 * type declaration. This class could have been deduced from the generics
+	 * type parameter graph of the declaration. For example, in the following
+	 * example:
+	 * 
+	 * <pre>
+	 * Map&lt;String, ? extends Metadata&gt;
+	 * </pre>
+	 * 
+	 * The raw class is the Map class.
+	 * 
+	 * @return The raw class represented by this type.
+	 */
+	public Class getRawClass() {
+		return clazz;
+	}
+
+	/**
+	 * Return a type parameter for this type.
+	 * 
+	 * The type parameter refers to a parameter in a generic type declaration
+	 * given by the zero-based index <code>i</code>.
+	 * 
+	 * For example, in the following example:
+	 * 
+	 * <pre>
+	 * Map&lt;String, ? extends Metadata&gt;
+	 * </pre>
+	 * 
+	 * type parameter 0 is <code>String</code>, and type parameter 1 is
+	 * <code>Metadata</code>.
+	 * 
+	 * <p>
+	 * This implementation returns a Reified Type that has <code>Object</code>
+	 * as class. Any object is assignable to Object and therefore no conversion
+	 * is then necessary. This is compatible with versions of Java language
+	 * prior to Java 5.
+	 * 
+	 * This method should be overridden by a subclass that provides access to
+	 * the generic type parameter information for Java 5 and later.
+	 * 
+	 * @param i The zero-based index of the requested type parameter.
+	 * @return The <code>ReifiedType</code> for the generic type parameter at
+	 *         the specified index.
+	 */
+	public ReifiedType getActualTypeArgument(int i) {
+		return OBJECT;
+	}
+
+	/**
+	 * Return the number of type parameters for this type.
+	 * 
+	 * <p>
+	 * This implementation returns <code>0</code>. This method should be
+	 * overridden by a subclass that provides access to the generic type
+	 * parameter information for Java 5 and later.
+	 * 
+	 * @return The number of type parameters for this type.
+	 */
+	public int size() {
+		return 0;
+	}
+}

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/ServiceUnavailableException.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/ServiceUnavailableException.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/ServiceUnavailableException.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -18,54 +18,52 @@
 import org.osgi.framework.ServiceException;
 
 /**
- * Thrown when an invocation is made on an OSGi service reference component, and
- * a backing service is not available.
+ * A Blueprint exception indicating that a service is unavailable.
+ * 
+ * This exception is thrown when an invocation is made on a service reference
+ * and a backing service is not available.
+ * 
+ * @version $Revision$
  */
 public class ServiceUnavailableException extends ServiceException {
-   
-   private static final long serialVersionUID = 1L;
-   
-   /**
+	private static final long	serialVersionUID	= 1L;
+	/**
 	 * The filter string associated with the exception.
 	 */
-	private final String filter;
+	private final String		filter;
 
-
-    /**
-     * Creates a <code>ServiceUnavaiableException</code> with the specified message.
-     *
-     * @param message The associated message.
-     * @param filterExpression
-     *                The filter expression used for the service lookup.
-     */
-	public ServiceUnavailableException(String message, String filterExpression) {
+	/**
+	 * Creates a Service Unavailable Exception with the specified message.
+	 * 
+	 * @param message The associated message.
+	 * @param filter The filter used for the service lookup.
+	 */
+	public ServiceUnavailableException(String message, String filter) {
 		super(message, UNREGISTERED);
-		this.filter = filterExpression;
+		this.filter = filter;
 	}
 
-
 	/**
-	 * Creates a <code>ServiceUnavaiableException</code> with the specified message and
+	 * Creates a Service Unavailable Exception with the specified message and
 	 * exception cause.
-	 *
+	 * 
 	 * @param message The associated message.
-     * @param filterExpression
-     *                The filter expression used for the service lookup.
+	 * @param filter The filter used for the service lookup.
 	 * @param cause The cause of this exception.
 	 */
-	public ServiceUnavailableException(String message, String filterExpression,	Throwable cause) {
+	public ServiceUnavailableException(String message, String filter,
+			Throwable cause) {
 		super(message, UNREGISTERED, cause);
-		this.filter = filterExpression;
+		this.filter = filter;
 	}
 
 	/**
-	 * Returns the filter expression that a service would have needed to satisfy in order
-	 * for the invocation to proceed.
-	 *
-	 * @return The failing filter expression.
+	 * Returns the filter expression that a service would have needed to satisfy
+	 * in order for the invocation to proceed.
+	 * 
+	 * @return The failing filter.
 	 */
 	public String getFilter() {
 		return this.filter;
 	}
 }
-

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/package.html
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/package.html	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/package.html	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1,6 +1,6 @@
-<!-- $Revision: 5654 $ -->
+<!-- $Revision: 7556 $ -->
 <BODY>
-<p>Blueprint Service Container Package Version 1.0.</p>
+<p>Blueprint Container Package Version 1.0.</p>
 <p>Bundles wishing to use this package must list the package
 in the Import-Package header of the bundle's manifest.
 For example:</p>
@@ -8,14 +8,14 @@
 Import-Package: org.osgi.service.blueprint.container; version=&quot;[1.0,2.0)&quot;
 </pre>
 <p>
-	This package defines the primary interface to a blueprint container,
+	This package defines the primary interface to a Blueprint Container,
 	<code>BlueprintContainer</code>. An instance of this type is available
-        inside a blueprint context as an implicitly defined component with name
-        "blueprintContainer".
+        inside a Blueprint Container as an implicitly defined component with the name
+        &quot;blueprintContainer&quot;.
 </p>
 <p>
-	This package also declares the supporting exception types, listener, and constants for working with a blueprint
-	container.
+	This package also declares the supporting exception types, listener, and constants for working with a Blueprint
+	Container.
 </p>
 </BODY>
 

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/packageinfo
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/packageinfo	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/container/packageinfo	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1 +1 @@
-version 1.0
+version 1.0

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/BeanArgument.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/BeanArgument.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/BeanArgument.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -16,43 +16,47 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * Metadata used in a Bean Component to inject arguments in a method or
- * constructor. This metadata class describes the <code>argument</element>
+ * Metadata for a factory method or constructor argument of a bean. The
+ * arguments of a bean are obtained from {@link BeanMetadata#getArguments()}.
+ * 
+ * This is specified by the <code>argument</code> elements of a bean.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface BeanArgument {
 
 	/**
-	 * The metadata for the value to inject into the parameter.
-	 *
-	 * This is the <code>value</code> attribute.
-	 *
-	 * @return the metadata for the value
+	 * Return the Metadata for the argument value.
+	 * 
+	 * This is specified by the <code>value</code> attribute.
+	 * 
+	 * @return The Metadata for the argument value.
 	 */
 	Metadata getValue();
 
 	/**
-	 * The type to convert the value into when invoking the constructor or
-	 * factory method. If no explicit type was specified on the component
-	 * definition then this method returns null.
-	 *
-	 * This is the <code>type</code> attribute.
-	 *
-	 * @return the explicitly specified type to convert the value into, or null
-	 *         if no type was specified in the component definition.
+	 * Return the name of the value type to match the argument and convert the
+	 * value into when invoking the constructor or factory method.
+	 * 
+	 * This is specified by the <code>type</code> attribute.
+	 * 
+	 * @return The name of the value type to convert the value into, or
+	 *         <code>null</code> if no type is specified.
 	 */
 	String getValueType();
 
 	/**
-	 * The (zero-based) index into the parameter list of the method or
-	 * constructor to be invoked for this parameter. This is determined either
-	 * by explicitly specifying the index attribute in the component
-	 * declaration, or by declaration order of constructor-arg elements if the
-	 * index was not explicitly set.
-	 *
-	 * This is the <code>index</code> attribute.
-	 *
-	 *
-	 * @return the zero-based parameter index
+	 * Return the zero-based index into the parameter list of the factory method
+	 * or constructor to be invoked for this argument. This is determined by
+	 * specifying the <code>index</code> attribute for the bean. If not
+	 * explicitly set, this will return -1 and the initial ordering is defined
+	 * by its position in the {@link BeanMetadata#getArguments()} list.
+	 * 
+	 * This is specified by the <code>index</code> attribute.
+	 * 
+	 * @return The zero-based index of the parameter, or -1 if no index is
+	 *         specified.
 	 */
 	int getIndex();
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -18,112 +18,126 @@
 import java.util.List;
 
 /**
- * Metadata for a Bean Component.
- *
- * This class describes a <code>bean</code> element.
+ * Metadata for a Bean component.
+ * 
+ * <p>
+ * This is specified by the <code>bean</code> element.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface BeanMetadata extends Target, ComponentMetadata {
 
-	static final String SCOPE_SINGLETON = "singleton";
-	static final String SCOPE_PROTOTYPE = "prototype";
+	/**
+	 * The bean has <code>singleton</code> scope.
+	 * 
+	 * @see #getScope()
+	 */
+	static final String	SCOPE_SINGLETON	= "singleton";
 
 	/**
-	 * The name of the class type specified for this component.
-	 *
-	 * This is the <code>class</code> attribute.
-	 *
-	 * @return the name of the component class. If no class was specified in the
-	 *         component definition (because the a factory component is used
-	 *         instead) then this method will return null.
+	 * The bean has <code>prototype</code> scope.
+	 * 
+	 * @see #getScope()
 	 */
+	static final String	SCOPE_PROTOTYPE	= "prototype";
+
+	/**
+	 * Return the name of the class specified for the bean.
+	 * 
+	 * This is specified by the <code>class</code> attribute of the bean
+	 * definition.
+	 * 
+	 * @return The name of the class specified for the bean. If no class is
+	 *         specified in the bean definition, because the a factory component
+	 *         is used instead, then this method will return <code>null</code>.
+	 */
 	String getClassName();
 
 	/**
-	 * The name of the init method specified for this component, if any.
-	 *
-	 * This is the <code>init-method</code> attribute.
-	 *
-	 * @return the method name of the specified init method, or null if no init
-	 *         method was specified.
+	 * Return the name of the init method specified for the bean.
+	 * 
+	 * This is specified by the <code>init-method</code> attribute of the bean
+	 * definition.
+	 * 
+	 * @return The name of the init method specified for the bean, or
+	 *         <code>null</code> if no init method is specified.
 	 */
 	String getInitMethod();
 
 	/**
-	 * The name of the destroy method specified for this component, if any.
-	 *
-	 * This is the <code>destroy-method</code> attribute.
-	 *
-	 * @return the method name of the specified destroy method, or null if no
-	 *         destroy method was specified.
+	 * Return the name of the destroy method specified for the bean.
+	 * 
+	 * This is specified by the <code>destroy-method</code> attribute of the
+	 * bean definition.
+	 * 
+	 * @return The name of the destroy method specified for the bean, or
+	 *         <code>null</code> if no destroy method is specified.
 	 */
 	String getDestroyMethod();
 
 	/**
-	 * The arguments for the factory method or constructor.
-	 *
-	 * Specified in all the child <code>argument<code> elements.
-	 *
-	 * @return The metadata for the factory method or constructor. Can be empty if no arguments are specified
+	 * Return the arguments for the factory method or constructor of the bean.
+	 * 
+	 * This is specified by the child <code>argument<code> elements.
+	 * 
+	 * @return An immutable List of {@link BeanArgument} objects for the factory
+	 *         method or constructor of the bean. The List is empty if no
+	 *         arguments are specified for the bean.
 	 */
 	List<BeanArgument> getArguments();
 
 	/**
-	 * The property injection metadata for this component.
-	 *
-	 * Specified in all the child <code>property</code> elements.
-	 *
-	 * @return an immutable collection of BeanProperty, with one
-	 *         entry for each property to be injected. If no property injection
-	 *         was specified for this component then an empty collection will be
-	 *         returned.
-	 *
+	 * Return the properties for the bean.
+	 * 
+	 * This is specified by the child <code>property</code> elements.
+	 * 
+	 * @return An immutable List of {@link BeanProperty} objects, with one entry
+	 *         for each property to be injected in the bean. The List is empty
+	 *         if no property injection is specified for the bean.
+	 * 
 	 */
 	List<BeanProperty> getProperties();
 
 	/**
-	 * Provides the name of the optional factory method.
-	 *
-	 * This is the <code>factory-method</code> attribute.
-	 *
-	 * @return The name of the factory method or <code>null</code>.
+	 * Return the name of the factory method for the bean.
+	 * 
+	 * This is specified by the <code>factory-method</code> attribute of the
+	 * bean.
+	 * 
+	 * @return The name of the factory method of the bean or <code>null</code>
+	 *         if no factory method is specified for the bean.
 	 */
 	String getFactoryMethod();
 
 	/**
-	 * The component instance on which to invoke the factory method (if
-	 * specified).
-	 *
-	 * The component is defined in the <code>factory-component</code>.
-	 *
-	 * @return when a factory method and factory component has been specified
-	 *         for this component, this operation returns the metadata
-	 *         specifying the component on which the factory method is to be
-	 *         invoked. When no factory component has been specified this
-	 *         operation will return null. A return value of null with a
-	 *         non-null factory method indicates that the factory method should
-	 *         be invoked as a static method on the component class itself. For
-	 *         a non-null return value, the Metadata object returned will be a
-	 *         RefMetadata or a TargetComponentMetadata instance.
+	 * Return the Metadata for the factory component on which to invoke the
+	 * factory method for the bean.
+	 * 
+	 * This is specified by the <code>factory-ref</code> attribute of the bean.
+	 * 
+	 * <p>
+	 * When a factory method and factory component have been specified for the
+	 * bean, this method returns the factory component on which to invoke the
+	 * factory method for the bean. When no factory component has been specified
+	 * this method will return <code>null</code>.
+	 * 
+	 * When a factory method has been specified for the bean but a factory
+	 * component has not been specified, the factory method must be invoked as a
+	 * static method on the bean's class.
+	 * 
+	 * @return The Metadata for the factory component on which to invoke the
+	 *         factory method for the bean or <code>null</code> if no factory
+	 *         component is specified.
 	 */
 	Target getFactoryComponent();
 
 	/**
-	 * The specified scope for the component lifecycle.
-	 *
-	 * @return a String indicating the scope specified for the component.
-	 *
+	 * Return the scope for the bean.
+	 * 
+	 * @return The scope for the bean.
 	 * @see #SCOPE_SINGLETON
 	 * @see #SCOPE_PROTOTYPE
 	 */
 	String getScope();
-
-	/**
-	 * Provide an actual class, this overrides the class name if set. This is
-	 * useful for Namespace Handler services that do not want to force the
-	 * Blueprint bundle to import implementation classes.
-	 *
-	 * @return Return the class to use in runtime or <code>null</code>.
-	 */
-
-	Class<?> getRuntimeClass();
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/BeanProperty.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/BeanProperty.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/BeanProperty.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -16,26 +16,33 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * Metadata describing a property to be injected. Properties are defined
- * following JavaBeans conventions.
+ * Metadata for a property to be injected into a bean. The properties of a bean
+ * are obtained from {@link BeanMetadata#getProperties()}.
+ * 
+ * This is specified by the <code>property</code> elements of a bean. Properties
+ * are defined according to the Java Beans conventions.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface BeanProperty {
 
 	/**
-	 * The name of the property to be injected, following JavaBeans conventions.
-	 *
-	 * Defined in the <code>name</code> attribute.
-	 *
-	 * @return the property name.
+	 * Return the name of the property to be injected. The name follows Java
+	 * Beans conventions.
+	 * 
+	 * This is specified by the <code>name</code> attribute.
+	 * 
+	 * @return The name of the property to be injected.
 	 */
 	String getName();
 
 	/**
-	 * The metadata for the value to inject the property with.
-	 *
-	 * Defined in the <code>value</code> attribute or inlined component.
-	 *
-	 * @return the metadata for the property value.
+	 * Return the Metadata for the value to be injected into a bean.
+	 * 
+	 * This is specified by the <code>value</code> attribute or in inlined text.
+	 * 
+	 * @return The Metadata for the value to be injected into a bean.
 	 */
 	Metadata getValue();
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/CollectionMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/CollectionMetadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/CollectionMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -18,32 +18,40 @@
 import java.util.List;
 
 /**
- * Metadata for a collection based value. Members of the array are instances of Metadata.
- * The Collection metadata can constrain to a specific type.
+ * Metadata for a collection based value. Values of the collection are defined
+ * by Metadata objects. This Collection Metadata can constrain the values of the
+ * collection to a specific type.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 
 public interface CollectionMetadata extends NonNullMetadata {
 
 	/**
-	 * Provide the interface that this collection must implement.
-	 *
-	 * This is used for Arrays (Object[]), Set, and List. This information
-	 * is encoded in the element name.
-	 *
-	 *
-	 * @return The interface class that the collection must implement.
+	 * Return the type of the collection.
+	 * 
+	 * The possible types are: array (<code>Object[]</code>), <code>Set</code>,
+	 * and <code>List</code>. This information is specified in the element name.
+	 * 
+	 * @return The type of the collection. <code>Object[]</code> is returned to
+	 *         indicate an array.
 	 */
 	Class<?> getCollectionClass();
 
-    /**
-     * The value-type specified for the array
-     *
-     * The <code>value-type</code> attribute.
-     */
+	/**
+	 * Return the type specified for the values of the collection.
+	 * 
+	 * The <code>value-type</code> attribute specified this information.
+	 * 
+	 * @return The type specified for the values of the collection.
+	 */
 	String getValueType();
 
-    /**
-     * The of Metadata objects that describe the value.
-     */
+	/**
+	 * Return Metadata for the values of the collection.
+	 * 
+	 * @return A List of Metadata for the values of the collection.
+	 */
 	List<Metadata> getValues();
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -18,51 +18,58 @@
 import java.util.List;
 
 /**
- * Base class for all components.
- *
- * @see BeanMetadata
- * @see ServiceReferenceMetadata
- * @see ServiceMetadata
+ * Metadata for managed components. This is the base type for
+ * {@link BeanMetadata}, {@link ServiceMetadata} and
+ * {@link ServiceReferenceMetadata}.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface ComponentMetadata extends NonNullMetadata {
 
 	/**
-	 * The component will be eagerly instanciated
+	 * The component's manager must eagerly activate the component.
+	 * 
+	 * @see #getActivation()
 	 */
-	static final int INITIALIZATION_EAGER = 1;
+	static final int	ACTIVATION_EAGER	= 1;
 
 	/**
- 	 * The component will be lazily instanciated
- 	 */
-	static final int INITIALIZATION_LAZY = 2;
+	 * The component's manager must lazily activate the component.
+	 * 
+	 * @see #getActivation()
+	 */
+	static final int	ACTIVATION_LAZY		= 2;
 
 	/**
-	 * The id of the component.
-	 *
-	 * @return component id. The component id can be <code>null</code> if this is an anonymously
-	 * defined inner component.
+	 * Return the id of the component.
+	 * 
+	 * @return The id of the component. The component id can be
+	 *         <code>null</code> if this is an anonymously defined and/or
+	 *         inlined component.
 	 */
 	String getId();
 
 	/**
- 	 * Is this component to be lazily instantiated?
- 	 *
- 	 * This is the <code>initialization</code> attribute or the
- 	 * <code>default-initialization</code> in the <code>blueprint</code> element
- 	 * if not set.
- 	 *
- 	 * @return the initialization method
- 	 * @see #INITIALIZATION_EAGER
- 	 * @see #INITIALIZATION_LAZY
- 	 */
-	int getInitialization();
+	 * Return the activation strategy for the component.
+	 * 
+	 * This is specified by the <code>activation</code> attribute of a component
+	 * definition. If this is not set, then the <code>default-activation</code>
+	 * in the <code>blueprint</code> element is used. If that is also not set,
+	 * then the activation strategy is {@link #ACTIVATION_EAGER}.
+	 * 
+	 * @return The activation strategy for the component.
+	 * @see #ACTIVATION_EAGER
+	 * @see #ACTIVATION_LAZY
+	 */
+	int getActivation();
 
-    /**
-     * The names of any components listed in a "depends-on" attribute for this
-     * component.
-     *
-     * @return an immutable List of component names for components that we have explicitly
-     * declared a dependency on, or an empty set if none.
-     */
-    List<String> getDependsOn();
+	/**
+	 * Return the ids of any components listed in a <code>depends-on</code>
+	 * attribute for the component.
+	 * 
+	 * @return An immutable List of component ids that are explicitly declared
+	 *         as a dependency, or an empty List if none.
+	 */
+	List<String> getDependsOn();
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/IdRefMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/IdRefMetadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/IdRefMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -16,15 +16,21 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * A value which represents the name of another component in the module context.
- * The name itself will be injected, not the component that the name refers to.
- *
+ * Metadata for the verified id of another component managed by the Blueprint
+ * Container. The id itself will be injected, not the component to which the id
+ * refers. No implicit dependency is created.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface IdRefMetadata extends NonNullMetadata {
 	/**
-	 * The name of the referenced component.
-	 * Defined in the <code>component-id</code> attribute.
-	 *
+	 * Return the id of the referenced component.
+	 * 
+	 * This is specified by the <code>component-id</code> attribute of a
+	 * component.
+	 * 
+	 * @return The id of the referenced component.
 	 */
 	String getComponentId();
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/MapEntry.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/MapEntry.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/MapEntry.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -17,30 +17,32 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * Metadata for an entry. An entry is the member of a MapMetadata so that it
- * can be treated as a CollectionMetadata with entries.
- *
- * Defined in the <code>entry</code> element.
- *
+ * Metadata for a map entry.
+ * 
+ * This type is used by {@link MapMetadata}, {@link PropsMetadata} and
+ * {@link ServiceMetadata}.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface MapEntry {
 	/**
-	 * Keys must be non-null.
-	 *
-	 * Defined in the <code>key</code> attribute or element.
-	 *
-	 * @return the metadata for the key
+	 * Return the Metadata for the key of the map entry.
+	 * 
+	 * This is specified by the <code>key</code> attribute or element.
+	 * 
+	 * @return The Metadata for the key of the map entry. This must not be
+	 *         <code>null</code>.
 	 */
-   // [TDI] NonNullMetadata getKey();
-   String getKey();
+	NonNullMetadata getKey();
 
 	/**
-	 * Return the metadata for the value.
-	 *
-	 * Defined in the <code>value</code> attribute or element<.
-	 *
-	 * @return the metadata for the value
+	 * Return the Metadata for the value of the map entry.
+	 * 
+	 * This is specified by the <code>value</code> attribute or element.
+	 * 
+	 * @return The Metadata for the value of the map entry. This must not be
+	 *         <code>null</code>.
 	 */
-   // [TDI] Metadata getValue();
-   String getValue();
+	Metadata getValue();
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/MapMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/MapMetadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/MapMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -18,28 +18,41 @@
 import java.util.List;
 
 /**
- * A map-based value. This represented as a collection of entries (as it is done in the schema).
- *
- * A map is defined in the <code>map</code> element.
- *
+ * Metadata for a Map based value.
+ * 
+ * <p>
+ * This is specified by the <code>map</code> element.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface MapMetadata extends NonNullMetadata {
 	/**
-	 * The key-type specified for map keys, or null if none given
-	 *
-	 * Defined in the <code>key-type</code> attribute.
+	 * Return the name of the type of the map keys.
+	 * 
+	 * This is specified by the <code>key-type</code> attribute of the map.
+	 * 
+	 * @return The name of the type of the map keys, or <code>null</code> if
+	 *         none is specified.
 	 */
 	String getKeyType();
 
-    /**
-     * The value-type specified for the array
-     *
-     * The <code>value-type</code> attribute.
-     */
+	/**
+	 * Return the name of the type of the map values.
+	 * 
+	 * This is specified by the <code>value-type</code> attribute of the map.
+	 * 
+	 * @return The name of the type of the map values, or <code>null</code> if
+	 *         none is specified.
+	 */
 	String getValueType();
 
-    /**
-     * The of Metadata objects that describe the value.
-     */
+	/**
+	 * Return the entries for the map.
+	 * 
+	 * @return An immutable List of {@link MapEntry} objects for each entry in
+	 *         the map. The List is empty if no entries are specified for the
+	 *         map.
+	 */
 	List<MapEntry> getEntries();
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/Metadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/Metadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/Metadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -16,9 +16,11 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * Top level metadata. This represents any possible value.
- *
+ * Top level Metadata type. All Metdata types extends this base type.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface Metadata {
-
+	// marker interface
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/NonNullMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/NonNullMetadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/NonNullMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -16,9 +16,16 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * Base interfaces for metadata that cannot be null. The NullMetadata is the
- * only element not implementing this. Mainly used for keys in maps because they
- * cannot be null.
+ * Metadata for a value that cannot <code>null</code>. All Metadata subtypes
+ * extend this type except for {@link NullMetadata}.
+ * 
+ * <p>
+ * This Metadata type is used for keys in Maps because they cannot be
+ * <code>null</code>.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface NonNullMetadata extends Metadata {
+	// marker interface
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/NullMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/NullMetadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/NullMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -16,12 +16,18 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * A value specified to be null via the <null/> element.
+ * Metadata for a value specified to be <code>null</code> via the &lt;null&gt;
+ * element.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface NullMetadata extends Metadata {
 
 	/**
-	 * Singleton instance of the NULL metadata.
+	 * Singleton instance of <code>NullMetadata</code>.
 	 */
-	static final NullMetadata NULL = new NullMetadata() {};
+	static final NullMetadata	NULL	= new NullMetadata() {
+											// empty body
+										};
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/PropsMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/PropsMetadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/PropsMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -18,20 +18,26 @@
 import java.util.List;
 
 /**
- * A java.util.Properties based value. The properties are defined as string to
- * string. This means that the actual value can be returned.
- *
- * Defined in the <code>props</code> element.
- *
+ * Metadata for a <code>java.util.Properties</code> based value.
+ * 
+ * <p>
+ * The {@link MapEntry} objects of properties are defined with keys and values
+ * of type <code>String</code>.
+ * 
+ * <p>
+ * This is specified by the <code>props</code> element.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface PropsMetadata extends NonNullMetadata {
 
 	/**
-	 * This is the same as getValuesMetadata but more type safe.
-	 *
-	 * Defined in <code>prop</code> sub elements.
-	 *
-	 * @return
+	 * Return the entries for the properties.
+	 * 
+	 * @return An immutable List of {@link MapEntry} objects for each entry in
+	 *         the properties. The List is empty if no entries are specified for
+	 *         the properties.
 	 */
 	List<MapEntry> getEntries();
 }

Deleted: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/RefListMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/RefListMetadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/RefListMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.osgi.service.blueprint.reflect;
-
-/**
- * Service reference that binds to a collection of matching services from the
- * OSGi service registry. This is the <code>ref-list</code> or
- * <code>ref-set</code> element.
- *
- */
-public interface RefListMetadata extends ServiceReferenceMetadata {
-
-	/**
-	 * Use the service objects to compare or include in the collection
-	 */
-	public static final int USE_SERVICE_OBJECT = 1;
-
-	/**
- 	 * Use the service references to compare or include in the collection
- 	 */
-	public static final int USE_SERVICE_REFERENCE = 2;
-
-	/**
-	 * Whether the collection will contain service objects, or service
-	 * references
-	 * Defined in the <code>member-type</code> attribute.
-	 *
-	 * @return one of USE_SERVICE_OBJECT and USE_SERVICE_REFERENCE
-	 * @see #USE_SERVICE_OBJECT
-	 * @see #USE_SERVICE_REFERENCE
-	 */
-	int getMemberType();
-}

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/RefMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/RefMetadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/RefMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -16,13 +16,20 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * A value which refers to another component in the module context by name.
+ * Metadata for a reference to another component managed by the Blueprint
+ * Container.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface RefMetadata extends Target, NonNullMetadata {
 	/**
-	 * The name of the referenced component.
-	 * Defined in the <code>component-id</code> attribute.
-	 *
+	 * Return the id of the referenced component.
+	 * 
+	 * This is specified by the <code>component-id</code> attribute of a
+	 * component.
+	 * 
+	 * @return The id of the referenced component.
 	 */
 	String getComponentId();
 }

Added: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+/**
+ * Metadata for a list of service references.
+ * 
+ * <p>
+ * This is specified by the <code>reference-list</code> element.
+ * 
+ * @ThreadSafe
+ * @version $Revision: 7563 $
+ */
+public interface ReferenceListMetadata extends ServiceReferenceMetadata {
+
+	/**
+	 * Reference list values must be proxies to the actual service objects.
+	 * 
+	 * @see #getMemberType()
+	 */
+	 static final int	USE_SERVICE_OBJECT		= 1;
+
+	/**
+	 * Reference list values must be <code>ServiceReference</code> objects.
+	 * 
+	 * @see #getMemberType()
+	 */
+	 static final int	USE_SERVICE_REFERENCE	= 2;
+
+	/**
+	 * Return whether the List will contain service object proxies or
+	 * <code>ServiceReference</code> objects.
+	 * 
+	 * This is specified by the <code>member-type</code> attribute of the
+	 * reference list.
+	 * 
+	 * @return Whether the List will contain service object proxies or
+	 *         <code>ServiceReference</code> objects.
+	 * @see #USE_SERVICE_OBJECT
+	 * @see #USE_SERVICE_REFERENCE
+	 */
+	int getMemberType();
+}

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListener.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListener.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListener.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -16,36 +16,45 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * Metadata for a listener interested in service bind and unbind events for a service
- * reference.
+ * Metadata for a reference listener interested in the reference bind and unbind
+ * events for a service reference.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface ReferenceListener {
 
 	/**
-	 * The component instance that will receive bind and unbind
-	 * events. The returned value must reference a TargetListenerComponent
-	 * either directly or indirectly.  The return type will be either
-     * a RefMetadata instance or an TargetListenerComponent instance.
-	 *
-	 * Defined in the <code>ref</code> attribute or inlined component.
-	 *
-	 * @return the listener component reference.
+	 * Return the Metadata for the component that will receive bind and unbind
+	 * events.
+	 * 
+	 * This is specified by the <code>ref</code> attribute or via an inlined
+	 * component.
+	 * 
+	 * @return The Metadata for the component that will receive bind and unbind
+	 *         events.
 	 */
 	Target getListenerComponent();
 
 	/**
-	 * The name of the method to invoke on the listener component when
-	 * a matching service is bound to the reference
-	 *
-	 * @return the bind callback method name.
+	 * Return the name of the bind method. The bind method will be invoked when
+	 * a matching service is bound to the reference.
+	 * 
+	 * This is specified by the <code>bind-method</code> attribute of the
+	 * reference listener.
+	 * 
+	 * @return The name of the bind method.
 	 */
 	String getBindMethod();
 
 	/**
-	 * The name of the method to invoke on the listener component when
-	 * a service is unbound from the reference.
-	 *
-	 * @return the unbind callback method name.
+	 * Return the name of the unbind method. The unbind method will be invoked
+	 * when a matching service is unbound from the reference.
+	 * 
+	 * This is specified by the <code>unbind-method</code> attribute of the
+	 * reference listener.
+	 * 
+	 * @return The name of the unbind method.
 	 */
 	String getUnbindMethod();
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ReferenceMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ReferenceMetadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ReferenceMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -16,21 +16,25 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- *
- * Service reference that will bind to a single matching service in the service
- * registry.
- *
- * Defines the <code>reference</code> element.
- *
+ * Metadata for a reference that will bind to a single matching service in the
+ * service registry.
+ * 
+ * <p>
+ * This is specified by the <code>reference</code> element.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
-public interface ReferenceMetadata extends ServiceReferenceMetadata, Target {
+public interface ReferenceMetadata extends Target, ServiceReferenceMetadata {
 
 	/**
-	 * Timeout for service invocations when a matching backing service is
+	 * Return the timeout for service invocations when a backing service is is
 	 * unavailable.
-	 * Defined in the <code>timeout</code> attribute.
-	 *
-	 * @return service invocation timeout in milliseconds
+	 * 
+	 * This is specified by the <code>timeout</code> attribute of the reference.
+	 * 
+	 * @return The timeout, in milliseconds, for service invocations when a
+	 *         backing service is is unavailable.
 	 */
 	long getTimeout();
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListener.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListener.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListener.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -16,41 +16,51 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * Metadata for a listener interested in service registration and unregistration
- * events for an exported service.
+ * Metadata for a registration listener interested in service registration and
+ * unregistration events for a service.
+ * 
+ * <p>
+ * The registration listener is called with the initial state of the service
+ * when the registration listener is actuated.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface RegistrationListener {
 
 	/**
-	 * The component instance that will receive registration and unregistration
-	 * events. The returned value must reference a TargetListenerComponent
-	 * either directly or indirectly.  The return type will be either
-     * a RefMetadata instance or an TargetListenerComponent instance.
-	 *
-	 * Defined in the <code>listener</code> child element.
-	 *
-	 * @return the listener component reference.
+	 * Return the Metadata for the component that will receive registration and
+	 * unregistration events.
+	 * 
+	 * This is specified by the <code>ref</code> attribute or via an inlined
+	 * component.
+	 * 
+	 * @return The Metadata for the component that will receive registration and
+	 *         unregistration events.
 	 */
 	Target getListenerComponent();
 
 	/**
-	 * The name of the method to invoke on the listener component when
-	 * the exported service is registered with the service registry.
-	 *
-	 * Defined in the <code>registration-method</code> attribute.
-	 *
-	 * @return the registration callback method name.
+	 * Return the name of the registration method. The registration method will
+	 * be invoked when the associated service is registered with the service
+	 * registry.
+	 * 
+	 * This is specified by the <code>registration-method</code> attribute of
+	 * the registration listener.
+	 * 
+	 * @return The name of the registration method.
 	 */
 	String getRegistrationMethod();
 
 	/**
-	 * The name of the method to invoke on the listener component when
-	 * the exported service is unregistered from the service registry.
-	 *
-	 * Defined in the <code>unregistration-method</code> attribute.
-	 *
-	 * @return the unregistration callback method name.
+	 * Return the name of the unregistration method. The unregistration method
+	 * will be invoked when the associated service is unregistered from the
+	 * service registry.
+	 * 
+	 * This is specified by the <code>unregistration-method</code> attribute of
+	 * the registration listener.
+	 * 
+	 * @return The name of the unregistration method.
 	 */
 	String getUnregistrationMethod();
-
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ServiceMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ServiceMetadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ServiceMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -18,91 +18,121 @@
 import java.util.Collection;
 import java.util.List;
 
-
 /**
- * Metadata representing a service to be exported by a module context.
- *
+ * Metadata for a service to be registered by the Blueprint Container when
+ * enabled.
+ * 
+ * <p>
+ * This is specified by the <code>service</code> element.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
-public interface ServiceMetadata extends ComponentMetadata, Target {
+public interface ServiceMetadata extends ComponentMetadata {
 
 	/**
-	 * Do not auto-detect types for advertised service intefaces
+	 * Do not auto-detect types for advertised service interfaces
+	 * 
+	 * @see #getAutoExport()
 	 */
-	public static final int AUTO_EXPORT_DISABLED = 1;
+	static final int		AUTO_EXPORT_DISABLED		= 1;
 
 	/**
-	 * Advertise all Java interfaces implemented by the exported component as
-	 * service interfaces.
+	 * Advertise all Java interfaces implemented by the component instance type
+	 * as service interfaces.
+	 * 
+	 * @see #getAutoExport()
 	 */
-	public static final int AUTO_EXPORT_INTERFACES= 2;
+	static final int		AUTO_EXPORT_INTERFACES		= 2;
 
 	/**
-	 * Advertise all Java classes in the hierarchy of the exported component's type
-	 * as service interfaces.
+	 * Advertise all Java classes in the hierarchy of the component instance
+	 * type as service interfaces.
+	 * 
+	 * @see #getAutoExport()
 	 */
-	public static final int AUTO_EXPORT_CLASS_HIERARCHY = 3;
+	static final int		AUTO_EXPORT_CLASS_HIERARCHY	= 3;
 
 	/**
-	 * Advertise all Java classes and interfaces in the exported component's type as
-	 * service interfaces.
+	 * Advertise all Java classes and interfaces in the component instance type
+	 * as service interfaces.
+	 * 
+	 * @see #getAutoExport()
 	 */
-	public static final int AUTO_EXPORT_ALL_CLASSES = 4;
+	static final int	AUTO_EXPORT_ALL_CLASSES		= 4;
 
 	/**
-	 * The component that is to be exported as a service. Value must refer to a component and
-	 * therefore be either a RefMetadata, BeanMetadata, or ReferenceMetadata.
-	 *
-	 * Defined in the <code>registration-method</code> attribute.
-	 *
-	 * @return the component to be exported as a service.
+	 * Return the Metadata for the component to be exported as a service.
+	 * 
+	 * This is specified inline or via the <code>ref</code> attribute of the
+	 * service.
+	 * 
+	 * @return The Metadata for the component to be exported as a service.
 	 */
 	Target getServiceComponent();
 
 	/**
-	 * The type names of the set of interface types that the service should be advertised
-	 * as supporting, as specified in the component declaration.
-	 *
-	 * Defined in the <code>interface</code> attribute or <code>interfaces</code> element.
-	 *
-	 * @return an immutable set of (String) type names, or an empty set if using auto-export
+	 * Return the type names of the interfaces that the service should be
+	 * advertised as supporting.
+	 * 
+	 * This is specified in the <code>interface</code> attribute or child
+	 * <code>interfaces</code> element of the service.
+	 * 
+	 * @return An immutable List of <code>String</code> for the type names of
+	 *         the interfaces that the service should be advertised as
+	 *         supporting. The List is empty if using <code>auto-export</code>
+	 *         or no interface names are specified for the service.
 	 */
 	List<String> getInterfaces();
 
 	/**
-	 * Return the auto-export mode specified.
-	 *
-	 * Defined in the <code>auto-export</code> attribute.
-	 *
-	 * @return One of AUTO_EXPORT_DISABLED, AUTO_EXPORT_INTERFACES, AUTO_EXPORT_CLASS_HIERARCHY, AUTO_EXPORT_ALL_CLASSES
+	 * Return the auto-export mode for the service.
+	 * 
+	 * This is specified by the <code>auto-export</code> attribute of the
+	 * service.
+	 * 
+	 * @return The auto-export mode for the service.
+	 * @see #AUTO_EXPORT_DISABLED
+	 * @see #AUTO_EXPORT_INTERFACES
+	 * @see #AUTO_EXPORT_CLASS_HIERARCHY
+	 * @see #AUTO_EXPORT_ALL_CLASSES
 	 */
 	int getAutoExport();
 
 	/**
-	 * The user declared properties to be advertised with the service.
-	 *
-	 * Defined in the <code>service-properties</code> element.
-	 *
-	 * @return Map containing the set of user declared service properties (may be
-	 * empty if no properties were specified).
+	 * Return the user declared properties to be advertised with the service.
+	 * 
+	 * This is specified by the <code>service-properties</code> element of the
+	 * service.
+	 * 
+	 * @return An immutable List of {@link MapEntry} objects for the user
+	 *         declared properties to be advertised with the service. The List
+	 *         is empty if no service properties are specified for the service.
 	 */
 	List<MapEntry> getServiceProperties();
 
 	/**
-	 * The ranking value to use when advertising the service
-	 *
-	 * Defined in the <code>ranking</code> attribute.
-	 *
-	 * @return service ranking
+	 * Return the ranking value to use when advertising the service. If the
+	 * ranking value is zero, the service must be registered without a
+	 * <code>service.ranking</code> service property.
+	 * 
+	 * This is specified by the <code>ranking</code> attribute of the service.
+	 * 
+	 * @return The ranking value to use when advertising the service.
 	 */
 	int getRanking();
 
 	/**
-	 * The listeners that have registered to be notified when the exported service
-	 * is registered and unregistered with the framework.
-	 *
-	 * Defined in the <code>registration-listener</code> elements.
-	 *
-	 * @return an immutable collection of RegistrationListenerMetadata
+	 * Return the registration listeners to be notified when the service is
+	 * registered and unregistered with the framework.
+	 * 
+	 * This is specified by the <code>registration-listener</code> elements of
+	 * the service.
+	 * 
+	 * @return An immutable Collection of {@link RegistrationListener} objects
+	 *         to be notified when the service is registered and unregistered
+	 *         with the framework. The Collection is empty if no registration
+	 *         listeners are specified for the service.
 	 */
 	Collection<RegistrationListener> getRegistrationListeners();
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ServiceReferenceMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ServiceReferenceMetadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ServiceReferenceMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -17,70 +17,86 @@
 
 import java.util.Collection;
 
-
 /**
- * Metadata describing a reference to a service that is to be imported into the module
- * context from the OSGi service registry.
- *
+ * Metadata for a reference to an OSGi service. This is the base type for
+ * {@link ReferenceListMetadata} and {@link ReferenceMetadata}.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface ServiceReferenceMetadata extends ComponentMetadata {
 
 	/**
 	 * A matching service is required at all times.
+	 * 
+	 * @see #getAvailability()
 	 */
-	public static final int AVAILABILITY_MANDATORY = 1;
+	static final int	AVAILABILITY_MANDATORY	= 1;
 
 	/**
 	 * A matching service is not required to be present.
+	 * 
+	 * @see #getAvailability()
 	 */
-	public static final int AVAILABILITY_OPTIONAL = 2;
+	static final int	AVAILABILITY_OPTIONAL	= 2;
 
 	/**
-	 * Whether or not a matching service is required at all times.
-	 *
-	 * Defined in the <code>availibility</code> attribute.
-	 *
-	 * @return one of AVAILABILITY_MANDATORY or AVAILABILITY_OPTIONAL
+	 * Return whether or not a matching service is required at all times.
+	 * 
+	 * This is specified in the <code>availability</code> attribute of the
+	 * service reference.
+	 * 
+	 * @return Whether or not a matching service is required at all times.
+	 * @see #AVAILABILITY_MANDATORY
+	 * @see #AVAILABILITY_OPTIONAL
 	 */
 	int getAvailability();
 
 	/**
-	 * The interface type that the matching service must support
-	 *
-	 * Defined in the <code>interface</code> attribute.
-	 * @return the String name of the requested service interface
+	 * Return the name of the interface type that a matching service must
+	 * support.
+	 * 
+	 * This is specified in the <code>interface</code> attribute of the service
+	 * reference.
+	 * 
+	 * @return The name of the interface type that a matching service must
+	 *         support or <code>null</code> when no interface name is specified.
 	 */
 	String getInterface();
 
 	/**
-	 * The value of the component-name attribute, if specified. This specifies
-	 * the name of a component that is registered in the service registry. This will
-	 * create an automatic filter (appended wit the filter if set) to select this
-	 * component based on its automatic id attribute.
-	 *
-	 * Defined in the <code>component-name</code> attribute.
-	 *
-	 * @return the component name attribute value, or null if the attribute was not specified
+	 * Return the value of the <code>component-name</code> attribute of the
+	 * service reference. This specifies the id of a component that is
+	 * registered in the service registry. This will create an automatic filter,
+	 * appended with the filter if set, to select this component based on its
+	 * automatic <code>id</code> attribute.
+	 * 
+	 * @return The value of the <code>component-name</code> attribute of the
+	 *         service reference or <code>null</code> if the attribute is not
+	 *         specified.
 	 */
 	String getComponentName();
 
 	/**
-	 * The filter expression that a matching service must pass
-	 *
-	 * Defined in the <code>filter</code> attribute.
-	 *
-	 * @return filter expression
+	 * Return the filter expression that a matching service must match.
+	 * 
+	 * This is specified by the <code>filter</code> attribute of the service
+	 * reference.
+	 * 
+	 * @return The filter expression that a matching service must match or
+	 *         <code>null</code> if a filter is not specified.
 	 */
 	String getFilter();
 
 	/**
-	 * The set of listeners registered to receive bind and unbind events for
-	 * backing services.
-	 *
-	 * Defined in the <code>listener</code> elements.
-	 *
-	 * @return an immutable collection of ReferenceListener objects
+	 * Return the reference listeners to receive bind and unbind events.
+	 * 
+	 * This is specified by the <code>reference-listener</code> elements of the
+	 * service reference.
+	 * 
+	 * @return An immutable Collection of {@link ReferenceListener} objects to
+	 *         receive bind and unbind events. The Collection is empty if no
+	 *         reference listeners are specified for the service reference.
 	 */
 	Collection<ReferenceListener> getReferenceListeners();
-
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/Target.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/Target.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/Target.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -15,12 +15,18 @@
  */
 package org.osgi.service.blueprint.reflect;
 
-
 /**
- * Provides a common interface for components that can be used as a direct target
- * for method calls. These are bean, reference, and ref.
- *
+ * A common interface for managed components that can be used as a direct target
+ * for method calls. These are <code>bean</code>, <code>reference</code>, and
+ * <code>ref</code>, where the <code>ref</code> must refer to a bean or
+ * reference component.
+ * 
+ * @see BeanMetadata
+ * @see ReferenceMetadata
+ * @see RefMetadata
+ * @ThreadSafe
+ * @version $Revision$
  */
-public interface Target extends Metadata {
-
+public interface Target extends NonNullMetadata {
+	// marker interface
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ValueMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ValueMetadata.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/ValueMetadata.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -16,23 +16,30 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * A simple string value that will be type-converted if necessary before
- * injecting into a target.
- *
- * This class is representing the <code>value</code> element.
- *
+ * Metadata for a simple <code>String</code> value that will be type-converted
+ * if necessary before injecting.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface ValueMetadata extends NonNullMetadata {
 	/**
-	 * The string value (unconverted) of this value).
-	 *
-	 * Defined in the <code>value</code> attribute or text part.
+	 * Return the unconverted string representation of the value.
+	 * 
+	 * This is specified by the <code>value</code> attribute or text part of the
+	 * <code>value</code> element.
+	 * 
+	 * @return The unconverted string representation of the value.
 	 */
 	String getStringValue();
 
 	/**
-	 * The name of the type to which this value should be coerced. May be null.
-	 * Defined in the <code>type</code> attribute.
+	 * Return the name of the type to which the value should be converted.
+	 * 
+	 * This is specified by the <code>type</code> attribute.
+	 * 
+	 * @return The name of the type to which the value should be converted or
+	 *         <code>null</code> if no type is specified.
 	 */
 	String getType();
 }

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/package.html
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/package.html	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/package.html	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1,4 +1,4 @@
-<!-- $Revision: 5654 $ -->
+<!-- $Revision: 7556 $ -->
 <BODY>
 <p>Blueprint Reflection Package Version 1.0.
 <p>Bundles wishing to use this package must list the package
@@ -7,29 +7,8 @@
 <pre>
 Import-Package: org.osgi.service.blueprint.reflect; version=&quot;[1.0,2.0)&quot;
 </pre>
-<p> This package provides a reflection-based view of the configuration information for a given
-	module context. The top-level mapping between configuration elements and reflection types is as follows:
+<p> This package provides a reflection-based view of the configuration information for a
+	Blueprint Container.
 </p>
-
-<pre>
-	Configuration Element			Corresponding Reflection Type(s)
-	bean             			BeanMetadata
-	reference		                ReferenceMetadata
-	ref-list				RefListMetadata
-	service					ServiceMetadata
-	argument        			BeanArgumentMetadata
-	property				BeanPropertyMetadata
-	listener				ListenerMetadata
-	registration-listener			RegistrationListenerMetadata
-	array<					CollectionMetadata
-	ref					RefMetadata
-	id-ref					IdrefMetadata
-	list					CollectionMetadata
-	map					MapMetadata
-	null					NullMetadata
-	props					PropsMetadata
-	set					CollectionMetadata
-	value					ValueMetadata
-<//pre>
 </BODY>
 

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/packageinfo
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/packageinfo	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/impl/src/main/java/org/osgi/service/blueprint/reflect/packageinfo	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1 +1 @@
-version 1.0
+version 1.0

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/testsuite/src/test/java/org/jboss/test/osgi/blueprint/container/BlueprintContainerTestCase.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/testsuite/src/test/java/org/jboss/test/osgi/blueprint/container/BlueprintContainerTestCase.java	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/testsuite/src/test/java/org/jboss/test/osgi/blueprint/container/BlueprintContainerTestCase.java	2009-07-16 14:16:10 UTC (rev 91345)
@@ -121,21 +121,6 @@
    }
 
    @Test
-   public void getBundleContext() throws Exception
-   {
-      if (context == null)
-         huskyBridge.run();
-      
-      assumeNotNull(context);
-      
-      BlueprintContainer bpContainer = getBlueprintContainer();
-      BundleContext bndContext = bpContainer.getBundleContext();
-      
-      assertNotNull("BundleContext not null", bndContext);
-      assertEquals("BundleContext equals", context, bndContext);
-   }
-
-   @Test
    public void getComponent() throws Exception
    {
       if (context == null)

Modified: projects/jboss-osgi/trunk/reactor/bundles/blueprint/testsuite/src/test/resources/parser/blueprint-all-elements.xml
===================================================================
--- projects/jboss-osgi/trunk/reactor/bundles/blueprint/testsuite/src/test/resources/parser/blueprint-all-elements.xml	2009-07-16 13:51:40 UTC (rev 91344)
+++ projects/jboss-osgi/trunk/reactor/bundles/blueprint/testsuite/src/test/resources/parser/blueprint-all-elements.xml	2009-07-16 14:16:10 UTC (rev 91345)
@@ -1,6 +1,87 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"
+<!-- 
+<blueprint default-activation="" default-activation="" default-availablility="" any="">
+  <description>
+  <type-converters>
+    <bean>
+    <reference>
+    <ref>
+    <any>
+  </type-converters>
+  <bean id="" activation="" depends-on="" class="" init-method="" destroy-method="" factory-method="" factory-ref="" scope="" any="">
+    <description>
+    <argument index="" type="" ref="" value="">
+      <description>
+      <service>
+      <reference-list>
+      <bean>
+      <reference>
+      <ref>
+      <any>
+      <idref>
+      <value>
+      <list>
+      <set>
+      <map>
+      <array>
+      <props>
+      <null>  
+    </argument>
+    <property>
+    <any>
+  </bean>
+  <service id="" activation="" depends-on="" interface="" ref="" auto-export="" ranking="" any="">
+    <description>
+    <interfaces>
+      <value>
+    </interfaces>
+    <service-properties>
+      <entry key="" value="">
+        <service>
+        <reference-list>
+        <bean>
+        <reference>
+        <ref>
+        <any>
+        <idref>
+        <value>
+        <list>
+        <set>
+        <map>
+        <array>
+        <props>
+        <null>  
+      </entry>
+      <any>
+    </service-properties>
+    <registration-listener ref="" registration-method="" unregistration-method="">
+      <bean>
+      <reference>
+      <ref>
+      <any>
+    </registration-listener>
+    <bean>
+    <reference>
+    <ref>
+    <any>
+  </service>
+  <reference id="" activation="" depends-on="" interface="" filter="" component-name="" availability="" any="" timeout="">
+    <description>
+    <reference-listener>
+    <any>
+  </reference>
+  <reference-list id="" activation="" depends-on="" interface="" filter="" component-name="" availability="" any="" timeout="" member-type="">
+    <description>
+    <reference-listener>
+    <any>
+  </reference-list>
+  <any>
+</blueprint>
+-->
+
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+  xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"
   default-activation="eager" default-availability="mandatory" default-timeout="300000">
 
   <description>blueprint description</description>



More information about the jboss-osgi-commits mailing list