You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by gn...@apache.org on 2009/04/22 17:57:38 UTC

svn commit: r767576 [4/4] - in /geronimo/sandbox/blueprint: blueprint-api/src/main/java/org/osgi/service/blueprint/context/ blueprint-api/src/main/java/org/osgi/service/blueprint/convert/ blueprint-api/src/main/java/org/osgi/service/blueprint/namespace...

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/resources/org/apache/geronimo/blueprint/blueprint-compendium.xsd
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/resources/org/apache/geronimo/blueprint/blueprint-compendium.xsd?rev=767576&r1=767575&r2=767576&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/resources/org/apache/geronimo/blueprint/blueprint-compendium.xsd (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/resources/org/apache/geronimo/blueprint/blueprint-compendium.xsd Wed Apr 22 15:57:35 2009
@@ -1,4 +1,23 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+    /*
+    * $Revision: 6775 $
+    *
+    * 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.
+    */
+    -->
 <xsd:schema xmlns="http://www.osgi.org/xmlns/blueprint-compendium/v1.0.0"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:osgi="http://www.osgi.org/xmlns/blueprint/v1.0.0"
@@ -7,51 +26,57 @@
             attributeFormDefault="unqualified"
             version="1.0.0">
 
-    <xsd:import namespace="blueprint.xsd"/>
+    <xsd:import namespace="http://www.osgi.org/xmlns/blueprint/v1.0.0"/>
 
     <!-- property placeholder -->
 
     <xsd:element name="property-placeholder" type="TpropertyPlaceholder"/>
 
-
     <xsd:complexType name="TpropertyPlaceholder">
-      <xsd:complexContent>
-        <xsd:extension base="osgi:TidentifiedType">
-          <xsd:sequence minOccurs="0" maxOccurs="1">
-             <!-- nested properties declaration -->
-             <xsd:element name="default-properties" type="TdefaultProperties" minOccurs="0" maxOccurs="1"/>
-          </xsd:sequence>
-          <xsd:attribute name="persistent-id" type="xsd:string" use="required"/>
-          <xsd:attribute name="placeholder-prefix" type="xsd:string" use="optional" default="${"/>
-          <xsd:attribute name="placeholder-suffix" type="xsd:string" use="optional" default="}"/>
-          <xsd:attribute name="defaults-ref" type="xsd:string" use="optional"/>
-        </xsd:extension>
-      </xsd:complexContent>
+        <xsd:complexContent>
+            <xsd:extension base="osgi:Tidentified">
+                <xsd:sequence>
+                    <!-- nested properties declaration -->
+                    <xsd:element name="default-properties" type="TdefaultProperties" minOccurs="0" maxOccurs="1"/>
+                </xsd:sequence>
+
+                <!-- #### What should be the type for a persistent id?  I think we need to define one like class and method -->
+                <xsd:attribute name="persistent-id" type="xsd:string" use="required"/>
+                <xsd:attribute name="placeholder-prefix" type="xsd:string" use="optional" default="${"/>
+                <xsd:attribute name="placeholder-suffix" type="xsd:string" use="optional" default="}"/>
+                <xsd:attribute name="defaults-ref" type="Tidref" use="optional"/>
+            </xsd:extension>
+        </xsd:complexContent>
     </xsd:complexType>
 
+
+    <!-- #### is this the correct type here?  This is defining placeholder properties,
+         so should this be a restricted set of value types or should this be expanded to
+         all of the elements you can inject into a bean property? -->
     <xsd:complexType name="TdefaultProperties">
         <xsd:sequence minOccurs="0" maxOccurs="unbounded">
             <xsd:element ref="osgi:property"/>
         </xsd:sequence>
     </xsd:complexType>
 
-    <!-- managed-property -->
-    
+
+    <!--  managed-properties  -->
+
     <xsd:element name="managed-properties" type="TmanagedProperties"/>
 
     <xsd:complexType name="TmanagedProperties">
         <xsd:attribute name="persistent-id" type="xsd:string" use="required"/>
         <xsd:attribute name="update-strategy" type="TupdateStrategyType" use="optional"/>
-        <xsd:attribute name="update-method" type="xsd:string" use='optional'/>
+        <xsd:attribute name="update-method" type="xsd:string" use="optional"/>
     </xsd:complexType>
 
     <xsd:simpleType name="TupdateStrategyType">
-        <xsd:restriction base="xsd:string">
+        <xsd:restriction base="xsd:NMTOKEN">
             <xsd:enumeration value="none"/>
             <xsd:enumeration value="component-managed"/>
             <xsd:enumeration value="container-managed"/>
         </xsd:restriction>
-     </xsd:simpleType>
+    </xsd:simpleType>
 
     <!--  managed-service-factory -->
 
@@ -59,12 +84,13 @@
 
     <xsd:complexType name="TmanagedServiceFactory">
         <xsd:complexContent>
-            <xsd:extension base="osgi:TidentifiedType">
+            <xsd:extension base="osgi:Tcomponent">
                 <xsd:sequence>
                     <xsd:group ref="osgi:serviceElements"/>
                     <xsd:element name="managed-component" type="TmanagedComponent" minOccurs="1" maxOccurs="1"/>
                 </xsd:sequence>
                 <xsd:attribute name="factory-pid" type="xsd:string" use="required"/>
+                <xsd:attribute name="interface" type="osgi:Tclass" use="optional"/>
                 <xsd:attribute name="auto-export" type="osgi:TautoExportModes" default="disabled"/>
                 <xsd:attribute name="ranking" type="xsd:int" default="0"/>
                 <xsd:anyAttribute namespace="##other" processContents="lax"/>
@@ -73,15 +99,16 @@
     </xsd:complexType>
 
     <xsd:complexType name="TmanagedComponent">
-        <xsd:group ref="osgi:componentElements"/>
-        <xsd:attribute name="class" type="xsd:string"/>
-        <xsd:attribute name="init-method" type="xsd:string"/>
-        <xsd:attribute name="destroy-method" type="xsd:string"/>
-        <xsd:attribute name="factory-method" type="xsd:string"/>
-        <xsd:attribute name="factory-component" type="xsd:string"/>
+        <xsd:group ref="osgi:beanElements"/>
+        <xsd:attribute name="class" type="osgi:Tclass"/>
+        <xsd:attribute name="init-method" type="osgi:Tmethod"/>
+        <xsd:attribute name="destroy-method" type="osgi:Tmethod"/>
+        <xsd:attribute name="factory-method" type="osgi:Tmethod"/>
+        <xsd:attribute name="factory-component" type="osgi:Tidref"/>
         <xsd:anyAttribute namespace="##other" processContents="lax"/>
     </xsd:complexType>
 
+
     <!-- cm-properties -->
 
     <xsd:element name="cm-properties" type="TcmProperties"/>

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/resources/org/apache/geronimo/blueprint/blueprint.xsd
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/resources/org/apache/geronimo/blueprint/blueprint.xsd?rev=767576&r1=767575&r2=767576&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/resources/org/apache/geronimo/blueprint/blueprint.xsd (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/resources/org/apache/geronimo/blueprint/blueprint.xsd Wed Apr 22 15:57:35 2009
@@ -1,4 +1,23 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+    /*
+    * $Revision: 6813 $
+    *
+    * 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.
+    */
+    -->
 <xsd:schema xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             targetNamespace="http://www.osgi.org/xmlns/blueprint/v1.0.0"
@@ -6,317 +25,155 @@
             attributeFormDefault="unqualified"
             version="1.0.0">
 
-    <!--
-
-    TODO: service/interfaces can have child elements other than "value"
-    TODO: service can not have a nested component element
-    TODO: ref and idref elements have the same schema definition, are both actually needed ?
-    TODO: what is reference/@component-name about ?
-
-     5.3.1: the component/@name attribute has been removed from the schema
-     5.3.3.1: idref/@local and ref/@local do not exist in the schema
-     the Converter describe in the spec in "Type Conversion" paragraph is inconsistent with the javadoc in the spec
-     the Module-Context-Type-Converter manifest header should not contain the from, as it's not part of the Converter interface anymore
-
-    TODO: section 5.3.3.1 shows an example with component/@name which attribute does not exist
-
-    -->
-
     <!-- Schema elements for core component declarations -->
 
-    <xsd:complexType name="TidentifiedType" abstract="true">
+    <xsd:complexType name="Tcomponent" abstract="true">
         <xsd:attribute name="id" type="xsd:ID"/>
     </xsd:complexType>
 
-    <xsd:element name="components">
-        <xsd:complexType>
-            <xsd:sequence>
-                <xsd:element ref="description" minOccurs="0"/>
-                <xsd:element ref="type-converters" minOccurs="0" maxOccurs="1"/>
-                <xsd:choice minOccurs="0" maxOccurs="unbounded">
-                    <xsd:element ref="component"/>
-                    <xsd:element ref="ref-list"/>
-                    <xsd:element ref="ref-set"/>
-                    <xsd:element ref="reference"/>
-                    <xsd:element ref="service"/>
-                    <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
-                </xsd:choice>
-            </xsd:sequence>
-            <xsd:attribute name="default-lazy-init" default="false" type="xsd:boolean"/>
-            <xsd:attribute name="default-init-method" type="xsd:string"/>
-            <xsd:attribute name="default-destroy-method" type="xsd:string"/>
-            <xsd:attributeGroup ref="defaults"/>
-            <xsd:anyAttribute namespace="##other" processContents="lax"/>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:element name="description">
-        <xsd:complexType mixed="true">
-            <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:element name="type-converters">
-        <xsd:complexType mixed="true">
-            <xsd:choice minOccurs="0" maxOccurs="unbounded">
-                <xsd:element ref="component"/>
-                <xsd:element ref="ref"/>
-            </xsd:choice>
-        </xsd:complexType>
-    </xsd:element>
+    <xsd:element name="blueprint" type="Tblueprint"/>
 
-    <xsd:group name="componentElements">
+    <xsd:complexType name="Tblueprint">
         <xsd:sequence>
-            <xsd:element ref="description" minOccurs="0"/>
+            <xsd:element name="description" type="Tdescription" minOccurs="0"/>
+            <xsd:element name="type-converters" type="Ttype-converters" minOccurs="0" maxOccurs="1"/>
+            <!-- top-level components -->
             <xsd:choice minOccurs="0" maxOccurs="unbounded">
-                <xsd:element ref="constructor-arg"/>
-                <xsd:element ref="property"/>
-                <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+                <xsd:group ref="allComponents"/>
             </xsd:choice>
         </xsd:sequence>
-    </xsd:group>
 
-    <xsd:attributeGroup name="componentAttributes">
-        <xsd:attribute name="class" type="xsd:string"/>
-        <xsd:attribute name="scope" type="xsd:string"/>
-        <xsd:attribute name="lazy-init" default="default" type="Tdefaultable-boolean"/>
-        <xsd:attribute name="depends-on" type="xsd:string"/>
-        <xsd:attribute name="init-method" type="xsd:string"/>
-        <xsd:attribute name="destroy-method" type="xsd:string"/>
-        <xsd:attribute name="factory-method" type="xsd:string"/>
-        <xsd:attribute name="factory-component" type="xsd:string"/>
+        <!-- Defaults-->
+        <xsd:attribute name="default-lazy-init" default="false"
+            type="Tlazy-init"/>
+        <xsd:attribute name="default-init-method" type="Tmethod"/>
+        <xsd:attribute name="default-destroy-method" type="Tmethod"/>
+        <xsd:attribute name="default-timeout" type="xsd:unsignedLong"
+            default="300000"/>
+        <xsd:attribute name="default-availability" type="Tavailability"
+            default="mandatory"/>
         <xsd:anyAttribute namespace="##other" processContents="lax"/>
-    </xsd:attributeGroup>
+    </xsd:complexType>
 
-    <xsd:element name="component">
-        <xsd:complexType>
-            <xsd:complexContent>
-                <xsd:extension base="TidentifiedType">
-                    <xsd:group ref="componentElements"/>
-                    <xsd:attributeGroup ref="componentAttributes"/>
-                </xsd:extension>
-            </xsd:complexContent>
-        </xsd:complexType>
-    </xsd:element>
+    <!--<xsd:element name="description" type="Tdescription"/>-->
 
-    <xsd:group name="valueElement">
-        <xsd:sequence>
-            <xsd:choice minOccurs="0" maxOccurs="unbounded">
-                <xsd:element ref="component"/>
-                <xsd:element ref="ref"/>
-                <xsd:element ref="idref"/>
-                <xsd:element ref="value"/>
-                <xsd:element ref="null"/>
-                <xsd:element ref="list"/>
-                <xsd:element ref="set"/>
-                <xsd:element ref="map"/>
-                <xsd:element ref="array"/>
-                <xsd:element ref="props"/>
-                <xsd:element ref="ref-list"/>
-                <xsd:element ref="ref-set"/>
-                <xsd:element ref="reference"/>
-                <xsd:element ref="service"/>
-                <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
-            </xsd:choice>
-        </xsd:sequence>
-    </xsd:group>
+    <xsd:complexType name="Tdescription" mixed="true">
+        <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:complexType>
+
+    <!--<xsd:element name="type-converters" type="Ttype-converters"/>-->
+
+    <xsd:complexType name="Ttype-converters">
+        <xsd:choice minOccurs="0" maxOccurs="unbounded">
+            <xsd:group ref="targetComponent"/>
+        </xsd:choice>
+    </xsd:complexType>
 
-    <xsd:group name="keyElement">
+	<!-- Components that provide a reasonable target for injection
+	used for listeners, etc. -->
+
+	<xsd:group name="targetComponent">
+		<xsd:choice>
+			<xsd:element name="bean" type="Tbean"/>
+			<xsd:element name="reference" type="Treference"/>
+            <xsd:element name="ref" type="Tref"/>
+			<xsd:any namespace="##other" processContents="strict" minOccurs="0"
+				maxOccurs="unbounded"/>
+		</xsd:choice>
+	</xsd:group>
+
+	<xsd:group name="allComponents">
+		<xsd:choice>
+			<xsd:element name="service" type="Tservice"/>
+			<xsd:element name="ref-list" type="Tref-collection"/>
+			<xsd:element name="ref-set" type="Tref-collection"/>
+			<xsd:group ref="targetComponent"/>
+		</xsd:choice>
+	</xsd:group>
+
+    <xsd:group name="beanElements">
         <xsd:sequence>
+            <xsd:element name="description" type="Tdescription" minOccurs="0"/>
             <xsd:choice minOccurs="0" maxOccurs="unbounded">
-                <xsd:element ref="component"/>
-                <xsd:element ref="ref"/>
-                <xsd:element ref="idref"/>
-                <xsd:element ref="value"/>
-                <xsd:element ref="list"/>
-                <xsd:element ref="set"/>
-                <xsd:element ref="map"/>
-                <xsd:element ref="array"/>
-                <xsd:element ref="props"/>
-                <xsd:element ref="ref-list"/>
-                <xsd:element ref="ref-set"/>
-                <xsd:element ref="reference"/>
-                <xsd:element ref="service"/>
-                <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+                <xsd:element name="argument" type="Targument"/>
+                <xsd:element name="property" type="Tproperty"/>
+                <xsd:any namespace="##other" processContents="strict" minOccurs="0"
+                         maxOccurs="unbounded"/>
             </xsd:choice>
         </xsd:sequence>
     </xsd:group>
 
-    <xsd:element name="constructor-arg">
-        <xsd:complexType>
-            <xsd:sequence>
-                <xsd:element ref="description" minOccurs="0"/>
-                <xsd:group ref="valueElement"/>
-            </xsd:sequence>
-            <xsd:attribute name="index" type="xsd:string"/>
-            <xsd:attribute name="type" type="xsd:string"/>
-            <xsd:attribute name="ref" type="xsd:string"/>
-            <xsd:attribute name="value" type="xsd:string"/>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:element name="property" type="TpropertyType"/>
-
-    <xsd:element name="ref">
-        <xsd:complexType>
-            <xsd:complexContent>
-                <xsd:restriction base="xsd:anyType">
-                    <xsd:attribute name="component" type="xsd:string" use="required"/>
-                </xsd:restriction>
-            </xsd:complexContent>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:element name="idref">
-        <xsd:complexType>
-            <xsd:complexContent>
-                <xsd:restriction base="xsd:anyType">
-                    <xsd:attribute name="component" type="xsd:string" use="required"/>
-                </xsd:restriction>
-            </xsd:complexContent>
-        </xsd:complexType>
-    </xsd:element>
-
-
-    <xsd:element name="value">
-        <xsd:complexType mixed="true">
-            <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
-            <xsd:attribute name="type" type="xsd:string"/>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:element name="null">
-        <xsd:complexType mixed="true">
-            <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:element name="list" type="TlistSetArrayType"/>
-    <xsd:element name="set" type="TlistSetArrayType"/>
-    <xsd:element name="map" type="TmapType"/>
-    <xsd:element name="array" type="TlistSetArrayType"/>
-    <xsd:element name="entry" type="TentryType"/>
-    <xsd:element name="props" type="TpropsType"/>
-
-    <xsd:element name="key">
-        <xsd:complexType>
-            <xsd:group ref="keyElement"/>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:element name="prop">
-        <xsd:complexType mixed="true">
-            <xsd:attribute name="key" type="xsd:string" use="required"/>
-            <xsd:attribute name="value" type="xsd:string" use="optional"/>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:complexType name="TpropertyType">
-        <xsd:sequence>
-            <xsd:element ref="description" minOccurs="0"/>
-            <xsd:group ref="valueElement"/>
-        </xsd:sequence>
-        <xsd:attribute name="name" type="xsd:string" use="required"/>
-        <xsd:attribute name="ref" type="xsd:string"/>
-        <xsd:attribute name="value" type="xsd:string"/>
-    </xsd:complexType>
-
-    <!-- Collection Types -->
-
-    <!-- base collection type -->
-    <xsd:complexType name="TbaseCollectionType"/>
-
-    <!-- base type for collections that have (possibly) typed nested values -->
-    <xsd:complexType name="TtypedCollectionType">
+    <xsd:complexType name="Tbean">
         <xsd:complexContent>
-            <xsd:extension base="TbaseCollectionType">
-                <xsd:attribute name="value-type" type="xsd:string"/>
-            </xsd:extension>
-        </xsd:complexContent>
-    </xsd:complexType>
-
+            <xsd:extension base="Tcomponent">
+                <xsd:group ref="beanElements"/>
+				<xsd:attribute name="class" type="Tclass"/>
+				<xsd:attribute name="depends-on" type="xsd:normalizedString"/>
+				<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-component" type="Tidref"/>
+
+				<xsd:attribute name="scope">
+					<xsd:simpleType>
+						<xsd:restriction base="xsd:NMTOKEN">
+							<xsd:enumeration value="singleton"/>
+							<xsd:enumeration value="prototype"/>
+							<xsd:enumeration value="bundle"/>
+						</xsd:restriction>
+					</xsd:simpleType>
+				</xsd:attribute>
 
-    <!-- 'map' element type -->
-    <xsd:complexType name="TmapType">
-        <xsd:complexContent>
-            <xsd:extension base="TtypedCollectionType">
-                <xsd:sequence>
-                    <xsd:choice minOccurs="0" maxOccurs="unbounded">
-                        <xsd:element ref="entry"/>
-                    </xsd:choice>
-                </xsd:sequence>
-                <xsd:attribute name="key-type" type="xsd:string"/>
+				<xsd:attribute name="lazy-init" type="Tlazy-init" default="default"/>
+                <xsd:anyAttribute namespace="##other" processContents="lax"/>
             </xsd:extension>
         </xsd:complexContent>
     </xsd:complexType>
 
-    <!-- 'entry' element type -->
-    <xsd:complexType name="TentryType">
+    <xsd:complexType name="Targument">
         <xsd:sequence>
-            <xsd:element ref="key" minOccurs="0"/>
-            <xsd:group ref="valueElement"/>
+            <xsd:element name="description" type="Tdescription" minOccurs="0"/>
+            <xsd:group ref="value"/>
         </xsd:sequence>
-        <xsd:attribute name="key" type="xsd:string"/>
-        <xsd:attribute name="key-ref" type="xsd:string"/>
-        <xsd:attribute name="value" type="xsd:string"/>
-        <xsd:attribute name="value-ref" type="xsd:string"/>
+        <xsd:attribute name="index" type="xsd:nonNegativeInteger"/>
+        <xsd:attribute name="type" type="Tclass"/>
+        <xsd:attribute name="ref" type="Tidref"/>
+        <xsd:attribute name="value" type="TstringValue"/>
     </xsd:complexType>
 
-    <!-- 'list' and 'set' collection type -->
-    <xsd:complexType name="TlistSetArrayType">
-        <xsd:complexContent>
-            <xsd:extension base="TtypedCollectionType">
-                <xsd:group ref="valueElement" minOccurs="0" maxOccurs="unbounded"/>
-            </xsd:extension>
-        </xsd:complexContent>
+    <xsd:complexType name="Tproperty">
+        <xsd:sequence>
+            <xsd:element name="description" type="Tdescription" minOccurs="0"/>
+            <xsd:group ref="value"/>
+        </xsd:sequence>
+        <xsd:attribute name="name" type="Tmethod" use="required"/>
+        <xsd:attribute name="ref" type="Tidref"/>
+        <xsd:attribute name="value" type="TstringValue"/>
     </xsd:complexType>
 
-    <!-- 'props' collection type -->
-    <xsd:complexType name="TpropsType">
+    <!--<xsd:element name="ref" type="Tref"/>-->
+
+    <xsd:complexType name="Tref">
         <xsd:complexContent>
-            <xsd:extension base="TbaseCollectionType">
-                <xsd:sequence>
-                    <xsd:choice minOccurs="0" maxOccurs="unbounded">
-                        <xsd:element ref="prop"/>
-                    </xsd:choice>
-                </xsd:sequence>
-            </xsd:extension>
+            <xsd:restriction base="xsd:anyType">
+                <xsd:attribute name="component" type="Tidref" use="required"/>
+            </xsd:restriction>
         </xsd:complexContent>
     </xsd:complexType>
 
-    <!-- simple internal types -->
-    <xsd:simpleType name="Tdefaultable-boolean">
-        <xsd:restriction base="xsd:NMTOKEN">
-            <xsd:enumeration value="default"/>
-            <xsd:enumeration value="true"/>
-            <xsd:enumeration value="false"/>
-        </xsd:restriction>
-    </xsd:simpleType>
-
-    <!-- Elements from Spring Dynamic Modules project -->
-
-    <xsd:attributeGroup name="defaults">
-        <xsd:attribute name="default-timeout" type="xsd:long" default="30000"/>
-        <xsd:attribute name="default-availability" type="Tavailability" default="mandatory" />
-    </xsd:attributeGroup>
-
-    <xsd:simpleType name="TdefaultCardinalityOptions">
-        <xsd:restriction base="xsd:string">
-            <xsd:enumeration value="1..X"/>
-            <xsd:enumeration value="0..X"/>
-        </xsd:restriction>
-
-    </xsd:simpleType>
-
-    <!-- reference -->
-    <xsd:element name="reference" type="TsingleReference"/>
+    <xsd:complexType name="Tnull" mixed="true">
+        <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:complexType>
 
+    <xsd:complexType name="Tkey">
+        <xsd:group ref="nonNullValue"/>
+    </xsd:complexType>
 
     <xsd:complexType name="Treference">
         <xsd:complexContent>
-            <xsd:extension base="TidentifiedType">
+            <xsd:extension base="Tcomponent">
                 <xsd:sequence minOccurs="0" maxOccurs="unbounded">
-                    <xsd:element name="interfaces" type="TlistSetArrayType" minOccurs="0" maxOccurs="1"/>
+                    <xsd:element name="interfaces" type="Tinterfaces" minOccurs="0" maxOccurs="1"/>
                     <xsd:element name="listener" type="Tlistener" minOccurs="0" maxOccurs="unbounded"/>
                 </xsd:sequence>
                 <xsd:attribute name="interface" use="optional" type="xsd:token"/>
@@ -327,32 +184,84 @@
         </xsd:complexContent>
     </xsd:complexType>
 
-
-    <xsd:complexType name="Tlistener">
-        <xsd:choice>
-            <xsd:element ref="ref"/>
-            <xsd:element ref="component"/>
-            <xsd:element ref="reference"/>
-            <xsd:element ref="service"/>
-            <xsd:sequence minOccurs="0" maxOccurs="1">
-                <!-- nested component declaration -->
-                <xsd:any namespace="##other" minOccurs="1" maxOccurs="1" processContents="skip"/>
-            </xsd:sequence>
-        </xsd:choice>
-        <!-- shortcut for bean references -->
-        <xsd:attribute name="ref" type="xsd:string" use="optional"/>
-        <xsd:attribute name="bind-method" type="xsd:token" use="required"/>
-        <xsd:attribute name="unbind-method" type="xsd:token" use="required"/>
+	<!-- reference -->
+	<xsd:complexType name="Treference">
+		<xsd:complexContent>
+			<xsd:extension base="TserviceReference">
+				<xsd:attribute name="timeout" use="optional" type="xsd:unsignedLong"/>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<!-- ref-set, ref-list -->
+	<xsd:complexType name="Tref-collection">
+		<xsd:complexContent>
+			<xsd:extension base="TserviceReference">
+                 <xsd:element name="comparator" type="Tcomparator" minOccurs="0" maxOccurrs="1"/>
+
+				<xsd:attribute name="comparator-ref" type="xsd:token"
+					use="optional"/>
+
+				<xsd:attribute name="member-type" use="optional">
+					<xsd:simpleType>
+						<xsd:restriction base="xsd:NMTOKEN">
+							<xsd:enumeration value="service-instance"/>
+							<xsd:enumeration value="service-reference"/>
+						</xsd:restriction>
+					</xsd:simpleType>
+				</xsd:attribute>
+
+				<xsd:attribute name="ordering-basis" use="optional">
+					<xsd:simpleType>
+						<xsd:restriction base="xsd:NMTOKEN">
+							<xsd:enumeration value="service"/>
+							<xsd:enumeration value="service-reference"/>
+						</xsd:restriction>
+					</xsd:simpleType>
+				</xsd:attribute>
+
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<!-- Reference base class -->
+	<xsd:complexType name="TserviceReference">
+		<xsd:complexContent>
+			<xsd:extension base="Tcomponent">
+   				<xsd:element name="interfaces" minOccurs="0" maxOccurs="1"
+   					type="Tinterfaces"/>
+
+   				<!-- listener ### why is this called listerm and not reference listener? -->
+   				<xsd:element name="listener" type="TreferenceListener" minOccurs="0"
+   					maxOccurs="unbounded"/>
+
+				<xsd:attribute name="interface" use="optional" type="Tclass"/>
+				<xsd:attribute name="filter" use="optional" type="xsd:normalizedString"/>
+				<xsd:attribute name="component-name" type="Tidref"
+					use="optional"/>
+				<xsd:attribute name="availability" type="Tavailability"
+					use="optional" default="mandatory"/>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+    <xsd:complexType name="TreferenceListener">
+        <xsd:group ref="targetComponent"/>
+        <xsd:attribute name="ref" type="xsd:token"
+            use="optional"/>
+        <xsd:attribute name="bind-method" type="Tmethod"
+            use="required"/>
+        <xsd:attribute name="unbind-method" type="Tmethod"
+            use="required"/>
     </xsd:complexType>
 
-    <!-- single reference -->
-    <xsd:complexType name="TsingleReference">
-        <xsd:complexContent>
-            <xsd:extension base="Treference">
-                <xsd:attribute name="timeout" use="optional" type="xsd:long"/>
-            </xsd:extension>
-        </xsd:complexContent>
-    </xsd:complexType>
+    <xsd:simpleType name="Tlazy-init">
+        <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="false"/>
+            <xsd:enumeration value="true"/>
+            <xsd:enumeration value="default"/>
+        </xsd:restriction>
+    </xsd:simpleType>
 
     <xsd:simpleType name="Tavailability">
         <xsd:restriction base="xsd:token">
@@ -361,108 +270,174 @@
         </xsd:restriction>
     </xsd:simpleType>
 
-    <!-- reference collections (set, list) -->
-    <xsd:element name="ref-list" type="TreferenceCollection"/>
-
-    <xsd:element name="ref-set" type="TreferenceCollection"/>
-
-
-    <xsd:complexType name="TreferenceCollection">
-        <xsd:complexContent>
-            <xsd:extension base="Treference">
-                <xsd:sequence minOccurs="0" maxOccurs="1">
-                    <xsd:element name="comparator" type="Tcomparator"/>
-                </xsd:sequence>
-                <xsd:attribute name="comparator-ref" type="xsd:string" use="optional"/>
-                <xsd:attribute name="member-type" type="TmemberType" use="optional"/>
-                <xsd:attribute name="ordering-basis" type="TorderingBasis" use="optional"/>
-            </xsd:extension>
-        </xsd:complexContent>
-    </xsd:complexType>
-
-    <xsd:simpleType name="TmemberType">
-        <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="service-instance"/>
-            <xsd:enumeration value="service-reference"/>
-        </xsd:restriction>
-    </xsd:simpleType>
-
     <xsd:complexType name="Tcomparator">
-        <xsd:choice>
-            <xsd:element ref="ref"/>
-            <xsd:element ref="component"/>
-            <xsd:element ref="reference"/>
-            <xsd:element ref="service"/>
-            <xsd:sequence minOccurs="1" maxOccurs="1">
-                <!-- nested component declaration -->
-                <xsd:any namespace="##other" minOccurs="1" maxOccurs="1" processContents="skip"/>
-            </xsd:sequence>
-        </xsd:choice>
+        <xsd:group ref="targetComponent"/>
     </xsd:complexType>
 
-    <xsd:simpleType name="TorderingBasis">
-        <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="service"/>
-            <xsd:enumeration value="service-reference"/>
-        </xsd:restriction>
-    </xsd:simpleType>
-
-
     <!-- service -->
-    <xsd:element name="service" type="Tservice"/>
-
 
     <xsd:complexType name="Tservice">
         <xsd:complexContent>
-            <xsd:extension base="TidentifiedType">
-                <xsd:choice>
-                    <xsd:group ref="serviceElements"/>
-                    <!-- nested component declaration -->
-                    <xsd:any namespace="##other" minOccurs="0" maxOccurs="1" processContents="skip"/>
-                </xsd:choice>
-                <xsd:attribute name="interface" type="xsd:token" use="optional"/>
-                <xsd:attribute name="ref" type="xsd:string" use="optional"/>
-                <xsd:attribute name="depends-on" type="xsd:string" use="optional"/>
+            <xsd:extension base="Tcomponent">
+                <xsd:element name="interfaces" type="Tinterfaces"
+                    minOccurs="0"/>
+
+   				<!-- #### I'm not sure this should be a Tmap.  Service properties can only
+                     have string keys, and Map can have any type.  I suspect this needs its
+                     own type -->
+                <xsd:element name="service-properties" type="Tmap"
+                    minOccurs="0"/>
+                <xsd:element name="registration-listener" type="TregistrationListener"
+                    minOccurs="0" maxOccurs="unbounded"/>
+                <xsd:element name="bean" type="Tcomponent" minOccurs="0"
+                    maxOccurs="1"/>
+                <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
+                    processContents="lax"/>
+                <xsd:attribute name="interface" type="Tclass" use="optional"/>
+                <xsd:attribute name="ref" type="Tidref" use="optional"/>
+                <xsd:attribute name="depends-on" type="xsd:normalizedString" use="optional"/>
                 <xsd:attribute name="auto-export" type="TautoExportModes" default="disabled"/>
                 <xsd:attribute name="ranking" type="xsd:int" default="0"/>
             </xsd:extension>
         </xsd:complexContent>
     </xsd:complexType>
-    
-    <xsd:group name="serviceElements">
-        <xsd:sequence>
-            <xsd:element name="interfaces" type="TlistSetArrayType" minOccurs="0"/>
-            <xsd:element name="service-properties" minOccurs="0" type="TmapType"/>
-            <xsd:element name="registration-listener" type="TserviceRegistrationListener" minOccurs="0" maxOccurs="unbounded"/>
-        </xsd:sequence>
-    </xsd:group>
 
-    <xsd:complexType name="TserviceRegistrationListener">
-        <xsd:choice>
-            <xsd:element ref="ref"/>
-            <xsd:element ref="component"/>
-            <xsd:element ref="reference"/>
-            <xsd:element ref="service"/>
-            <xsd:sequence minOccurs="0" maxOccurs="1">
-                <!-- nested bean declaration -->
-                <xsd:any namespace="##other" minOccurs="1" maxOccurs="1" processContents="skip"/>
-            </xsd:sequence>
+    <xsd:complexType name="TregistrationListener">
+        <xsd:group ref="targetComponent"/>
+        <xsd:attribute name="ref" type="Tidref"
+            use="optional"/>
+        <!--  ### why are there both required? -->
+        <xsd:attribute name="registration-method"
+            type="Tmethod" use="required"/>
+        <xsd:attribute name="unregistration-method"
+            type="Tmethod" use="required"/>
+    </xsd:complexType>
+
+	<!--
+	Values
+	-->
+
+	<xsd:group name="value">
+        <xsd:choice minOccurs="0" maxOccurs="1">
+			<xsd:group ref="nonNullValue"/>
+            <xsd:element name="null" type="Tnull"/>
+		</xsd:choice>
+	</xsd:group>
+
+    <xsd:complexType name="Tnull"/>
+
+	<xsd:group name="nonNullValue">
+        <xsd:choice minOccurs="0" maxOccurs="1">
+			<xsd:group ref="allComponents"/>
+			<xsd:choice minOccurs="0" maxOccurs="1">
+				<xsd:element name="ref" type="Tref"/>
+				<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:any namespace="##other" processContents="strict" minOccurs="0"
+					maxOccurs="unbounded"/>
+			</xsd:choice>
         </xsd:choice>
+	</xsd:group>
 
-        <!-- shortcut for bean references -->
-        <xsd:attribute name="ref" type="xsd:string" use="optional"/>
-        <xsd:attribute name="registration-method" type="xsd:token" use="required"/>
-        <xsd:attribute name="unregistration-method" type="xsd:token" use="required"/>
+	<xsd:complexType name="Tref">
+		<xsd:complexContent>
+			<!--- ### what is this restriction doing ??? -->
+			<xsd:restriction base="xsd:anyType">
+				<xsd:attribute name="component" type="Tidref" use="required"/>
+			</xsd:restriction>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<xsd:complexType name="Tvalue" mixed="true">
+		<!-- #### why should arbitrary elements be allowed in a <value>?-->
+        <xsd:any minOccurs="0" maxOccurs="unbounded"/>
+		<xsd:attribute name="type" type="Tclass"/>
+	</xsd:complexType>
+
+	<!-- Collection Values -->
+
+	<xsd:complexType name="Tcollection">
+		<xsd:complexContent>
+			<xsd:extension base="TtypedCollection">
+				<xsd:group ref="value" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<xsd:complexType name="Tprops">
+   		<xsd:element name="prop" type="Tprop" maxOccurs="unbounded"/>
+	</xsd:complexType>
+
+    <xsd:complexType name="Tprop" mixed="true">
+        <xsd:attribute name="key" type="TstringValue"
+            use="required"/>
+        <xsd:attribute name="value" type="TstringValue"
+            use="optional"/>
     </xsd:complexType>
 
-    <xsd:simpleType name="TautoExportModes">
-        <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="disabled"/>
-            <xsd:enumeration value="interfaces"/>
-            <xsd:enumeration value="class-hierarchy"/>
-            <xsd:enumeration value="all-classes"/>
-        </xsd:restriction>
-    </xsd:simpleType>
+    <!-- 'map' element type -->
+    <xsd:complexType name="Tmap">
+        <xsd:complexContent>
+            <xsd:extension base="TtypedCollection">
+                <xsd:element name="entry" type="Tentry" minOccurs="0" maxOccurs="unbounded"/>
+                <xsd:attribute name="key-type" type="xsd:string"/>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
 
+    <!-- 'entry' element type -->
+    <xsd:complexType name="Tentry">
+        <xsd:sequence>
+            <xsd:element name="key" type="Tkey" minOccurs="0"/>
+            <xsd:group ref="value"/>
+        </xsd:sequence>
+        <xsd:attribute name="key" type="TstringValue"/>
+        <xsd:attribute name="key-ref" type="Tidref"/>
+        <xsd:attribute name="value" type="TstringValue"/>
+        <xsd:attribute name="value-ref" type="Tidref"/>
+    </xsd:complexType>
+
+	<xsd:complexType name="TtypedCollection">
+		<xsd:complexContent>
+            <xsd:attribute name="value-type" type="Tclass"/>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<!-- General types -->
+
+	<xsd:complexType name="Tdescription" mixed="true">
+		<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+	</xsd:complexType>
+
+	<xsd:complexType name="Tinterfaces">
+		<xsd:choice minOccurs="1" maxOccurs="unbounded">
+			<xsd:element name="value" type="Tclass"/>
+		</xsd:choice>
+	</xsd:complexType>
+
+	<!-- Should be used for all attributes and elements that refer to classes -->
+	<xsd:simpleType name="Tclass">
+		<xsd:restriction base="xsd:NCName"/>
+	</xsd:simpleType>
+
+	<!-- Should be used for all attributes and elements that refer to method names -->
+	<xsd:simpleType name="Tmethod">
+		<xsd:restriction base="xsd:NCName"/>
+	</xsd:simpleType>
+
+	<!-- Should be used for all attributes and elements that refer to method names -->
+	<xsd:simpleType name="Tidref">
+		<xsd:restriction base="xsd:NCName"/>
+	</xsd:simpleType>
+
+	<!-- Should be used for value= attributes that specify string values -->
+	<xsd:simpleType name="TstringValue">
+		<xsd:restriction base="xsd:normalizedString"/>
+	</xsd:simpleType>
 
-</xsd:schema>
\ No newline at end of file
+</xsd:schema>

Modified: geronimo/sandbox/blueprint/blueprint-core/src/test/java/org/apache/geronimo/blueprint/ParserTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/test/java/org/apache/geronimo/blueprint/ParserTest.java?rev=767576&r1=767575&r2=767576&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/test/java/org/apache/geronimo/blueprint/ParserTest.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/test/java/org/apache/geronimo/blueprint/ParserTest.java Wed Apr 22 15:57:35 2009
@@ -20,32 +20,25 @@
 
 import java.net.URI;
 import java.net.URL;
-import java.util.Collections;
 import java.util.List;
-import java.util.Set;
 
 import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
-import junit.framework.TestCase;
-import org.apache.geronimo.blueprint.context.Parser;
-import org.apache.geronimo.blueprint.namespace.ComponentDefinitionRegistryImpl;
-import org.apache.geronimo.blueprint.reflect.LocalComponentMetadataImpl;
+import org.apache.geronimo.blueprint.reflect.BeanMetadataImpl;
 import org.osgi.service.blueprint.namespace.ComponentDefinitionRegistry;
 import org.osgi.service.blueprint.namespace.NamespaceHandler;
 import org.osgi.service.blueprint.namespace.ParserContext;
-import org.osgi.service.blueprint.reflect.ArrayValue;
+import org.osgi.service.blueprint.reflect.BeanArgument;
+import org.osgi.service.blueprint.reflect.BeanMetadata;
+import org.osgi.service.blueprint.reflect.BeanProperty;
+import org.osgi.service.blueprint.reflect.CollectionMetadata;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
-import org.osgi.service.blueprint.reflect.ComponentValue;
-import org.osgi.service.blueprint.reflect.ConstructorInjectionMetadata;
-import org.osgi.service.blueprint.reflect.LocalComponentMetadata;
-import org.osgi.service.blueprint.reflect.NullValue;
-import org.osgi.service.blueprint.reflect.ParameterSpecification;
-import org.osgi.service.blueprint.reflect.PropertyInjectionMetadata;
-import org.osgi.service.blueprint.reflect.ReferenceValue;
-import org.osgi.service.blueprint.reflect.TypedStringValue;
-import org.osgi.service.blueprint.reflect.Value;
+import org.osgi.service.blueprint.reflect.Metadata;
+import org.osgi.service.blueprint.reflect.NullMetadata;
+import org.osgi.service.blueprint.reflect.RefMetadata;
+import org.osgi.service.blueprint.reflect.ValueMetadata;
 
 /**
  * TODO: constructor injection
@@ -58,69 +51,67 @@
         assertNotNull(registry);
         ComponentMetadata component = registry.getComponentDefinition("pojoA");
         assertNotNull(component);
-        assertEquals("pojoA", component.getName());
-        Set<String> deps = component.getExplicitDependencies();
+        assertEquals("pojoA", component.getId());
+        assertTrue(component instanceof BeanMetadata);
+        BeanMetadata local = (BeanMetadata) component;
+        List<String> deps = local.getExplicitDependencies();
         assertNotNull(deps);
         assertEquals(2, deps.size());
         assertTrue(deps.contains("pojoB"));
         assertTrue(deps.contains("pojoC"));
-        assertTrue(component instanceof LocalComponentMetadata);
-        LocalComponentMetadata local = (LocalComponentMetadata) component;
         assertEquals("org.apache.geronimo.blueprint.pojos.PojoA", local.getClassName());
-        ConstructorInjectionMetadata cns = local.getConstructorInjectionMetadata();
-        assertNotNull(cns);
-        List<ParameterSpecification> params = cns.getParameterSpecifications();
+        List<BeanArgument> params = local.getArguments();
         assertNotNull(params);
         assertEquals(6, params.size());
-        ParameterSpecification param = params.get(0);
+        BeanArgument param = params.get(0);
         assertNotNull(param);
         assertEquals(-1, param.getIndex());
-        assertNull(param.getTypeName());
+        assertNull(param.getValueType());
         assertNotNull(param.getValue());
-        assertTrue(param.getValue() instanceof TypedStringValue);
-        assertEquals("val0", ((TypedStringValue) param.getValue()).getStringValue());
-        assertNull(((TypedStringValue) param.getValue()).getTypeName());
+        assertTrue(param.getValue() instanceof ValueMetadata);
+        assertEquals("val0", ((ValueMetadata) param.getValue()).getStringValue());
+        assertNull(((ValueMetadata) param.getValue()).getTypeName());
         param = params.get(1);
         assertNotNull(param);
         assertEquals(-1, param.getIndex());
-        assertNull(param.getTypeName());
+        assertNull(param.getValueType());
         assertNotNull(param.getValue());
-        assertTrue(param.getValue() instanceof ReferenceValue);
-        assertEquals("val1", ((ReferenceValue) param.getValue()).getComponentName());
+        assertTrue(param.getValue() instanceof RefMetadata);
+        assertEquals("val1", ((RefMetadata) param.getValue()).getComponentId());
         param = params.get(2);
         assertNotNull(param);
         assertEquals(-1, param.getIndex());
-        assertNull(param.getTypeName());
+        assertNull(param.getValueType());
         assertNotNull(param.getValue());
-        assertTrue(param.getValue() instanceof NullValue);
+        assertTrue(param.getValue() instanceof NullMetadata);
         param = params.get(3);
         assertNotNull(param);
         assertEquals(-1, param.getIndex());
-        assertEquals("java.lang.String", param.getTypeName());
+        assertEquals("java.lang.String", param.getValueType());
         assertNotNull(param.getValue());
-        assertTrue(param.getValue() instanceof TypedStringValue);
-        assertEquals("val3", ((TypedStringValue) param.getValue()).getStringValue());
-        assertNull(((TypedStringValue) param.getValue()).getTypeName());
+        assertTrue(param.getValue() instanceof ValueMetadata);
+        assertEquals("val3", ((ValueMetadata) param.getValue()).getStringValue());
+        assertNull(((ValueMetadata) param.getValue()).getTypeName());
         param = params.get(4);
         assertNotNull(param);
         assertEquals(-1, param.getIndex());
-        assertNull(param.getTypeName());
+        assertNull(param.getValueType());
         assertNotNull(param.getValue());
-        assertTrue(param.getValue() instanceof ArrayValue);
-        ArrayValue array = (ArrayValue) param.getValue();
-        assertNull(array.getValueType());
-        assertNotNull(array.getArray());
-        assertEquals(3, array.getArray().length);
-        assertTrue(array.getArray()[0] instanceof TypedStringValue);
-        assertTrue(array.getArray()[1] instanceof ComponentValue);
-        assertTrue(array.getArray()[2] instanceof NullValue);
+        assertTrue(param.getValue() instanceof CollectionMetadata);
+        CollectionMetadata array = (CollectionMetadata) param.getValue();
+        assertNull(array.getValueTypeName());
+        assertNotNull(array.getValues());
+        assertEquals(3, array.getValues().size());
+        assertTrue(array.getValues().get(0) instanceof ValueMetadata);
+        assertTrue(array.getValues().get(1) instanceof ComponentMetadata);
+        assertTrue(array.getValues().get(2) instanceof NullMetadata);
         param = params.get(5);
         assertNotNull(param);
         assertEquals(-1, param.getIndex());
-        assertNull(param.getTypeName());
+        assertNull(param.getValueType());
         assertNotNull(param.getValue());
-        assertTrue(param.getValue() instanceof ReferenceValue);
-        assertEquals("pojoB", ((ReferenceValue) param.getValue()).getComponentName());
+        assertTrue(param.getValue() instanceof RefMetadata);
+        assertEquals("pojoB", ((RefMetadata) param.getValue()).getComponentId());
         
         assertEquals(null, local.getInitMethodName());
         assertEquals(null, local.getDestroyMethodName());
@@ -128,15 +119,13 @@
         // test pojoB
         ComponentMetadata pojoB = registry.getComponentDefinition("pojoB");
         assertNotNull(pojoB);
-        assertEquals("pojoB", pojoB.getName());
-        assertTrue(pojoB instanceof LocalComponentMetadata);
-        LocalComponentMetadata pojoBLocal = (LocalComponentMetadata) pojoB;
+        assertEquals("pojoB", pojoB.getId());
+        assertTrue(pojoB instanceof BeanMetadata);
+        BeanMetadata pojoBLocal = (BeanMetadata) pojoB;
         assertEquals("initPojo", pojoBLocal.getInitMethodName());
         assertEquals("", pojoBLocal.getDestroyMethodName());
         
-        cns = pojoBLocal.getConstructorInjectionMetadata();
-        assertNotNull(cns);
-        params = cns.getParameterSpecifications();
+        params = pojoBLocal.getArguments();
         assertNotNull(params);
         assertEquals(2, params.size());
         param = params.get(0);
@@ -166,22 +155,20 @@
         
         metadata = registry.getComponentDefinition("barService");
         assertNotNull(metadata);
-        assertTrue(metadata instanceof LocalComponentMetadata);
-        LocalComponentMetadata comp2 = (LocalComponentMetadata) metadata;
-        assertEquals(1, comp2.getPropertyInjectionMetadata().size());
-        PropertyInjectionMetadata propertyMetadata = (PropertyInjectionMetadata)comp2.getPropertyInjectionMetadata().iterator().next();
+        assertTrue(metadata instanceof BeanMetadata);
+        BeanMetadata comp2 = (BeanMetadata) metadata;
+        assertEquals(1, comp2.getProperties().size());
+        BeanProperty propertyMetadata = comp2.getProperties().get(0);
         assertEquals("localCache", propertyMetadata.getName());
-        Value propertyValue = propertyMetadata.getValue();
-        assertTrue(propertyValue instanceof ComponentValue);
-        ComponentValue componentValue = (ComponentValue) propertyValue;
-        assertTrue(componentValue.getComponentMetadata() instanceof LocalComponentMetadata);
-        LocalComponentMetadata innerComp = (LocalComponentMetadata) componentValue.getComponentMetadata();
+        Metadata propertyValue = propertyMetadata.getValue();
+        assertTrue(propertyValue instanceof BeanMetadata);
+        BeanMetadata innerComp = (BeanMetadata) propertyValue;
         assertEquals("org.apache.geronimo.CacheProperty", innerComp.getClassName()); 
         
         metadata = registry.getComponentDefinition("myCache");
         assertNotNull(metadata);
-        assertTrue(metadata instanceof LocalComponentMetadata);
-        LocalComponentMetadata comp3 = (LocalComponentMetadata) metadata;
+        assertTrue(metadata instanceof BeanMetadata);
+        BeanMetadata comp3 = (BeanMetadata) metadata;
         assertEquals("org.apache.geronimo.Cache", comp3.getClassName());         
     }
 
@@ -206,11 +193,11 @@
         public ComponentMetadata decorate(Node node,
                                           ComponentMetadata component,
                                           ParserContext context) {
-            //System.out.println("decorate: " + node + " " + component + " " + context.getEnclosingComponent().getName());
+            //System.out.println("decorate: " + node + " " + component + " " + context.getEnclosingComponent().getId());
             
             if (node instanceof Attr) {
                 Attr attr = (Attr) node;
-                MyLocalComponentMetadata decoratedComp = new MyLocalComponentMetadata((LocalComponentMetadata)component);                
+                MyLocalComponentMetadata decoratedComp = new MyLocalComponentMetadata((BeanMetadata)component);
                 decoratedComp.setCacheReturnValues(Boolean.parseBoolean(attr.getValue()));
                 return decoratedComp;
             } else if (node instanceof Element) {
@@ -228,7 +215,7 @@
         }
 
         public ComponentMetadata parse(Element element, ParserContext context) {
-            String comp = (context.getEnclosingComponent() == null) ? null : context.getEnclosingComponent().getName();
+            String comp = (context.getEnclosingComponent() == null) ? null : context.getEnclosingComponent().getId();
             //System.out.println("parse: " + element.getLocalName() + " " + comp);
             
             String className;
@@ -238,8 +225,8 @@
                 className = "org.apache.geronimo.CacheProperty";
             }
                         
-            LocalComponentMetadataImpl p = new LocalComponentMetadataImpl();
-            p.setName(element.getAttribute("id"));
+            BeanMetadataImpl p = new BeanMetadataImpl();
+            p.setId(element.getAttribute("id"));
             p.setClassName(className);
             
             return p;
@@ -247,12 +234,12 @@
         
     }
     
-    private static class MyLocalComponentMetadata extends LocalComponentMetadataImpl {
+    private static class MyLocalComponentMetadata extends BeanMetadataImpl {
         
         private boolean cacheReturnValues;
         private String operation;
         
-        public MyLocalComponentMetadata(LocalComponentMetadata impl) {
+        public MyLocalComponentMetadata(BeanMetadata impl) {
             super(impl);
         }
         

Modified: geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test-custom-nodes.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test-custom-nodes.xml?rev=767576&r1=767575&r2=767576&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test-custom-nodes.xml (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test-custom-nodes.xml Wed Apr 22 15:57:35 2009
@@ -17,22 +17,22 @@
  specific language governing permissions and limitations
  under the License.
 -->
-<components xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:cache="http://cache.org"
-    xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 ../../main/resources/org/apache/felix/blueprint/blueprint.xsd">
+    xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 ../../main/resources/org/apache/geronimo/blueprint/blueprint.xsd">
 
     <cache:lru-cache id="myCache" />
     
-    <component id="fooService" class="FooServiceImpl" cache:cache-return-values="true">
+    <bean id="fooService" class="FooServiceImpl" cache:cache-return-values="true">
         <cache:operation name="getVolatile" />
 
         <property name="myProp" value="12" />
-    </component>
+    </bean>
     
-    <component id="barService" class="BarServiceImpl">
+    <bean id="barService" class="BarServiceImpl">
         <property name="localCache">
             <cache:lru-cache />
         </property>
-    </component>
+    </bean>
 
-</components>
\ No newline at end of file
+</blueprint>
\ No newline at end of file

Modified: geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test-simple-component.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test-simple-component.xml?rev=767576&r1=767575&r2=767576&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test-simple-component.xml (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test-simple-component.xml Wed Apr 22 15:57:35 2009
@@ -1,40 +1,40 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<components xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+<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 ../../main/resources/org/apache/felix/blueprint/blueprint.xsd"
+            xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 ../../main/resources/org/apache/geronimo/blueprint/blueprint.xsd"
             default-init-method="init" default-destroy-method="destroy">
 
-    <component id="pojoA" class="org.apache.geronimo.blueprint.pojos.PojoA" depends-on=" pojoB , pojoC ,">
-        <constructor-arg value="val0"/>
-        <constructor-arg ref="val1" />
-        <constructor-arg>
+    <bean id="pojoA" class="org.apache.geronimo.blueprint.pojos.PojoA" depends-on=" pojoB , pojoC ,">
+        <argument value="val0"/>
+        <argument ref="val1" />
+        <argument>
             <description>null value</description>
             <null/>
-        </constructor-arg>
-        <constructor-arg type="java.lang.String">
+        </argument>
+        <argument type="java.lang.String">
             <value>val3</value>
-        </constructor-arg>
-        <constructor-arg>
+        </argument>
+        <argument>
             <array>
                 <value>val0</value>
-                <component class="java.lang.String"/>
+                <bean class="java.lang.String"/>
                 <null/>
             </array>
-        </constructor-arg>
-        <constructor-arg>
+        </argument>
+        <argument>
             <ref component="pojoB"/>
-        </constructor-arg>
+        </argument>
         <property name="prop1" ref="pojoB"/>
         <property name="prop2" value="value" />
         <property name="prop3">
             <description>property</description>
             <value>val</value>
         </property>
-    </component>
+    </bean>
     
-    <component id="pojoB" class="org.apache.geronimo.blueprint.pojos.PojoA" init-method="initPojo" destroy-method="" >
-        <constructor-arg index = "1" value="val0"/>
-        <constructor-arg index = "0" ref="val1" />
-    </component>
+    <bean id="pojoB" class="org.apache.geronimo.blueprint.pojos.PojoA" init-method="initPojo" destroy-method="" >
+        <argument index = "1" value="val0"/>
+        <argument index = "0" ref="val1" />
+    </bean>
     
-</components>
\ No newline at end of file
+</blueprint>
\ No newline at end of file

Modified: geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test-wiring.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test-wiring.xml?rev=767576&r1=767575&r2=767576&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test-wiring.xml (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test-wiring.xml Wed Apr 22 15:57:35 2009
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<components xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+<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 ../../main/resources/org/apache/geronimo/blueprint/blueprint.xsd"
             default-availability="mandatory"
@@ -19,15 +19,15 @@
         </service-properties>    
     </service>
 
-    <component id="pojoC" class="org.apache.geronimo.blueprint.pojos.PojoB" scope = "prototype">
+    <bean id="pojoC" class="org.apache.geronimo.blueprint.pojos.PojoB" scope = "prototype">
         <property name="uri" value="urn:myuri" />
-    </component>
+    </bean>
     
-    <component id="pojoB" class="org.apache.geronimo.blueprint.pojos.PojoB" init-method = "init">
+    <bean id="pojoB" class="org.apache.geronimo.blueprint.pojos.PojoB" init-method = "init">
         <property name="uri" value="urn:myuri" />
-    </component>
+    </bean>
 
-    <component id="pojoA" class="org.apache.geronimo.blueprint.pojos.PojoA">
+    <bean id="pojoA" class="org.apache.geronimo.blueprint.pojos.PojoA">
         <property name="pojob" ref="pojoB"/>
         <property name="map">
             <map>
@@ -75,6 +75,6 @@
         <property name="number">
             <value type="java.math.BigInteger">10</value>
         </property>
-    </component>
+    </bean>
 
-</components>
\ No newline at end of file
+</blueprint>
\ No newline at end of file

Modified: geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test.xml?rev=767576&r1=767575&r2=767576&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test.xml (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/test/resources/test.xml Wed Apr 22 15:57:35 2009
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<components xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+<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 ../../main/resources/org/apache/felix/blueprint/blueprint.xsd"
+            xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 ../../main/resources/org/apache/geronimo/blueprint/blueprint.xsd"
             default-availability="mandatory">
 
     <description>
@@ -9,27 +9,27 @@
     </description>
 
     <type-converters>
-        <component class="org.apache.geronimo.blueprint.pojos.ConverterA"/>
+        <bean class="org.apache.geronimo.blueprint.pojos.ConverterA"/>
         <ref component="converterB"/>
     </type-converters>
 
-    <component id="pojoA" class="org.apache.geronimo.blueprint.pojos.PojoA">
+    <bean id="pojoA" class="org.apache.geronimo.blueprint.pojos.PojoA">
         <property name="pojob" ref="pojoB"/>
-    </component>
+    </bean>
 
-    <component id="pojoAcns" class="org.apache.geronimo.blueprint.pojos.PojoA">
-        <constructor-arg ref="pojoB"/>
-    </component>
+    <bean id="pojoAcns" class="org.apache.geronimo.blueprint.pojos.PojoA">
+        <argument ref="pojoB"/>
+    </bean>
 
-    <component id="pojoB" class="org.apache.geronimo.blueprint.pojos.PojoB">
+    <bean id="pojoB" class="org.apache.geronimo.blueprint.pojos.PojoB">
         <property name="uri" value="urn:myuri"/>
-    </component>
+    </bean>
 
-    <component id="pojoBcns" class="org.apache.geronimo.blueprint.pojos.PojoB">
-        <constructor-arg value="urn:myuri"/>
-    </component>
+    <bean id="pojoBcns" class="org.apache.geronimo.blueprint.pojos.PojoB">
+        <argument value="urn:myuri"/>
+    </bean>
 
-    <component id="converterB" class="org.apache.geronimo.blueprint.pojos.ConverterB"/>
+    <bean id="converterB" class="org.apache.geronimo.blueprint.pojos.ConverterB"/>
 
     <reference id="refA" filter="(key=prop)" interface="org.apache.geronimo.blueprint.pojos.InterfaceA"/>
 
@@ -42,8 +42,8 @@
 
     <service interface="org.apache.geronimo.blueprint.pojos.InterfaceA" ref="pojoA"/>
 
-    <component id="listenerA" class="org.apache.geronimo.blueprint.pojos.ListenerA"/>
+    <bean id="listenerA" class="org.apache.geronimo.blueprint.pojos.ListenerA"/>
 
     <ref-list availability="optional" member-type="service-instance"/>
 
-</components>
\ No newline at end of file
+</blueprint>
\ No newline at end of file

Copied: geronimo/sandbox/blueprint/blueprint-itests/src/test/java/org/apache/geronimo/blueprint/itests/TestBlueprintContext.java (from r767394, geronimo/sandbox/blueprint/blueprint-itests/src/test/java/org/apache/geronimo/blueprint/itests/TestModuleContext.java)
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-itests/src/test/java/org/apache/geronimo/blueprint/itests/TestBlueprintContext.java?p2=geronimo/sandbox/blueprint/blueprint-itests/src/test/java/org/apache/geronimo/blueprint/itests/TestBlueprintContext.java&p1=geronimo/sandbox/blueprint/blueprint-itests/src/test/java/org/apache/geronimo/blueprint/itests/TestModuleContext.java&r1=767394&r2=767576&rev=767576&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-itests/src/test/java/org/apache/geronimo/blueprint/itests/TestModuleContext.java (original)
+++ geronimo/sandbox/blueprint/blueprint-itests/src/test/java/org/apache/geronimo/blueprint/itests/TestBlueprintContext.java Wed Apr 22 15:57:35 2009
@@ -32,12 +32,12 @@
 import org.osgi.framework.Bundle;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.framework.Constants;
-import org.osgi.service.blueprint.context.ModuleContext;
+import org.osgi.service.blueprint.context.BlueprintContext;
 import org.osgi.service.blueprint.context.ServiceUnavailableException;
 import org.springframework.core.io.Resource;
 import org.springframework.util.Assert;
 
-public class TestModuleContext extends AbstractIntegrationTest {
+public class TestBlueprintContext extends AbstractIntegrationTest {
 
     public void test() throws Exception {
         Resource res = locateBundle(getBundle("org.apache.geronimo", "blueprint-sample"));
@@ -45,10 +45,10 @@
         assertNotNull(bundle);
         bundle.start();
 
-        ModuleContext moduleContext = getOsgiService(ModuleContext.class, 5000);
-        assertNotNull(moduleContext);
+        BlueprintContext blueprintContext = getOsgiService(BlueprintContext.class, 5000);
+        assertNotNull(blueprintContext);
 
-        Object obj = moduleContext.getComponent("bar");
+        Object obj = blueprintContext.getComponent("bar");
         assertNotNull(obj);
         assertEquals(Bar.class, obj.getClass());
         Bar bar = (Bar) obj;
@@ -58,7 +58,7 @@
         assertEquals(2, bar.getList().size());
         assertEquals("a list element", bar.getList().get(0));
         assertEquals(Integer.valueOf(5), bar.getList().get(1));
-        obj = moduleContext.getComponent("foo");
+        obj = blueprintContext.getComponent("foo");
         assertNotNull(obj);
         assertEquals(Foo.class, obj.getClass());
         Foo foo = (Foo) obj;
@@ -74,7 +74,7 @@
 
         bundle.stop();
         try {
-            moduleContext = getOsgiService(ModuleContext.class, 1);
+            blueprintContext = getOsgiService(BlueprintContext.class, 1);
             fail("ModuleContext should have been unregistered");
         } catch (Exception e) {
             // Expected, as the module context should have been unregistered

Modified: geronimo/sandbox/blueprint/blueprint-itests/src/test/java/org/apache/geronimo/blueprint/itests/TestReferences.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-itests/src/test/java/org/apache/geronimo/blueprint/itests/TestReferences.java?rev=767576&r1=767575&r2=767576&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-itests/src/test/java/org/apache/geronimo/blueprint/itests/TestReferences.java (original)
+++ geronimo/sandbox/blueprint/blueprint-itests/src/test/java/org/apache/geronimo/blueprint/itests/TestReferences.java Wed Apr 22 15:57:35 2009
@@ -19,19 +19,16 @@
 package org.apache.geronimo.blueprint.itests;
 
 import java.net.URLDecoder;
-import java.util.Properties;
 import java.util.Hashtable;
 import java.util.List;
 
-import org.apache.servicemix.kernel.testing.support.AbstractIntegrationTest;
-import org.apache.geronimo.blueprint.sample.Foo;
-import org.apache.geronimo.blueprint.sample.Bar;
-import org.apache.geronimo.blueprint.sample.InterfaceA;
 import org.apache.geronimo.blueprint.sample.BindingListener;
+import org.apache.geronimo.blueprint.sample.InterfaceA;
+import org.apache.servicemix.kernel.testing.support.AbstractIntegrationTest;
 import org.osgi.framework.Bundle;
-import org.osgi.framework.ServiceRegistration;
 import org.osgi.framework.Constants;
-import org.osgi.service.blueprint.context.ModuleContext;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.blueprint.context.BlueprintContext;
 import org.osgi.service.blueprint.context.ServiceUnavailableException;
 import org.springframework.core.io.Resource;
 import org.springframework.util.Assert;
@@ -39,14 +36,14 @@
 public class TestReferences extends AbstractIntegrationTest {
 
     public void testUnaryReference() throws Exception {
-        ModuleContext moduleContext = getOsgiService(ModuleContext.class, 5000);
-        assertNotNull(moduleContext);
+        BlueprintContext blueprintContext = getOsgiService(BlueprintContext.class, 5000);
+        assertNotNull(blueprintContext);
 
-        BindingListener listener = (BindingListener) moduleContext.getComponent("bindingListener");
+        BindingListener listener = (BindingListener) blueprintContext.getComponent("bindingListener");
         assertNull(listener.getA());
         assertNull(listener.getReference());
 
-        InterfaceA a = (InterfaceA) moduleContext.getComponent("ref2");
+        InterfaceA a = (InterfaceA) blueprintContext.getComponent("ref2");
         try {
             a.hello("world");
             fail("A ServiceUnavailableException should have been thrown");
@@ -91,14 +88,14 @@
     }
 
     public void testListReferences() throws Exception {
-        ModuleContext moduleContext = getOsgiService(ModuleContext.class, 5000);
-        assertNotNull(moduleContext);
+        BlueprintContext blueprintContext = getOsgiService(BlueprintContext.class, 5000);
+        assertNotNull(blueprintContext);
 
-        BindingListener listener = (BindingListener) moduleContext.getComponent("listBindingListener");
+        BindingListener listener = (BindingListener) blueprintContext.getComponent("listBindingListener");
         assertNull(listener.getA());
         assertNull(listener.getReference());
 
-        List refs = (List) moduleContext.getComponent("ref-list");
+        List refs = (List) blueprintContext.getComponent("ref-list");
         assertNotNull(refs);
         assertTrue(refs.isEmpty());
 

Modified: geronimo/sandbox/blueprint/blueprint-sample/src/main/resources/OSGI-INF/blueprint/config.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-sample/src/main/resources/OSGI-INF/blueprint/config.xml?rev=767576&r1=767575&r2=767576&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-sample/src/main/resources/OSGI-INF/blueprint/config.xml (original)
+++ geronimo/sandbox/blueprint/blueprint-sample/src/main/resources/OSGI-INF/blueprint/config.xml Wed Apr 22 15:57:35 2009
@@ -1,15 +1,14 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-
-<components xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
 
     <type-converters>
-            <component id="converter1" class="org.apache.geronimo.blueprint.sample.DateTypeConverter">
+            <bean id="converter1" class="org.apache.geronimo.blueprint.sample.DateTypeConverter">
                 <property name="format" value="yyyy.MM.dd"/>
-            </component>
+            </bean>
             <ref component="converter2"/>
     </type-converters>
 
-    <component id="foo" class="org.apache.geronimo.blueprint.sample.Foo">
+    <bean id="foo" class="org.apache.geronimo.blueprint.sample.Foo">
         <property name="a" value="5" />
         <property name="b" value="10" />
         <property name="bar" ref="bar" />
@@ -19,9 +18,9 @@
         <property name="date">
               <value>2009.04.17</value>
         </property>
-    </component>
+    </bean>
 
-    <component id="bar" class="org.apache.geronimo.blueprint.sample.Bar">
+    <bean id="bar" class="org.apache.geronimo.blueprint.sample.Bar">
         <property name="value"><value>Hello FooBar</value></property>
         <property name="context" ref="bundleContext"/>
         <property name="list">
@@ -30,9 +29,9 @@
                 <value type = "java.lang.Integer">5</value>
             </list>        
         </property>
-    </component>
+    </bean>
 
-    <component id="converter2" class="org.apache.geronimo.blueprint.sample.CurrencyTypeConverter"/>
+    <bean id="converter2" class="org.apache.geronimo.blueprint.sample.CurrencyTypeConverter"/>
 
     <service ref="foo" auto-export="all-classes">
         <service-properties>
@@ -43,7 +42,7 @@
                                unregistration-method="serviceUnregistered"/>
     </service>
     
-    <component id="fooRegistrationListener" class="org.apache.geronimo.blueprint.sample.FooRegistrationListener"/>
+    <bean id="fooRegistrationListener" class="org.apache.geronimo.blueprint.sample.FooRegistrationListener"/>
 
     <reference id="ref" interface="org.apache.geronimo.blueprint.sample.Foo">
     </reference>
@@ -52,13 +51,13 @@
         <listener bind-method="bind" unbind-method="unbind" ref="bindingListener" />
     </reference>
 
-    <component id="bindingListener" class="org.apache.geronimo.blueprint.sample.BindingListener"/>
+    <bean id="bindingListener" class="org.apache.geronimo.blueprint.sample.BindingListener"/>
 
     <ref-list id="ref-list" interface="org.apache.geronimo.blueprint.sample.InterfaceA">
         <listener bind-method="bind" unbind-method="unbind" ref="listBindingListener" />
     </ref-list>
 
-    <component id="listBindingListener" class="org.apache.geronimo.blueprint.sample.BindingListener"/>
+    <bean id="listBindingListener" class="org.apache.geronimo.blueprint.sample.BindingListener"/>
 
-</components>
+</blueprint>