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/06/04 17:35:23 UTC

svn commit: r781778 - in /geronimo/sandbox/blueprint: blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ blueprint-cm/src/main/resources/org/apache/geronimo/blueprint/compendium/cm/ blueprint-core/src/main/java/org/apache/geronimo/blueprin...

Author: gnodet
Date: Thu Jun  4 15:35:21 2009
New Revision: 781778

URL: http://svn.apache.org/viewvc?rev=781778&view=rev
Log:
Update to latest schema and api

Modified:
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java
    geronimo/sandbox/blueprint/blueprint-cm/src/main/resources/org/apache/geronimo/blueprint/compendium/cm/blueprint-cm.xsd
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/AbstractServiceReferenceRecipe.java
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/Parser.java
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/RecipeBuilder.java
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/mutable/MutableBeanMetadata.java
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/mutable/MutableComponentMetadata.java
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/mutable/MutableServiceMetadata.java
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/BeanMetadataImpl.java
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/ComponentMetadataImpl.java
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/ServiceMetadataImpl.java
    geronimo/sandbox/blueprint/blueprint-core/src/main/resources/org/apache/geronimo/blueprint/blueprint.xsd
    geronimo/sandbox/blueprint/blueprint-core/src/test/java/org/apache/geronimo/blueprint/ParserTest.java

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java?rev=781778&r1=781777&r2=781778&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java Thu Jun  4 15:35:21 2009
@@ -44,6 +44,4 @@
 
     Class getRuntimeClass();
 
-    List<String> getExplicitDependencies();
-
 }

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java?rev=781778&r1=781777&r2=781778&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java Thu Jun  4 15:35:21 2009
@@ -16,6 +16,8 @@
  */
 package org.osgi.service.blueprint.reflect;
 
+import java.util.List;
+
 public interface ComponentMetadata extends NonNullMetadata {
 
     static final int INITIALIZATION_EAGER = 1;
@@ -26,4 +28,6 @@
 
     int getInitialization();
 
+    List<String> getDependsOn();
+
 }

Modified: geronimo/sandbox/blueprint/blueprint-cm/src/main/resources/org/apache/geronimo/blueprint/compendium/cm/blueprint-cm.xsd
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-cm/src/main/resources/org/apache/geronimo/blueprint/compendium/cm/blueprint-cm.xsd?rev=781778&r1=781777&r2=781778&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-cm/src/main/resources/org/apache/geronimo/blueprint/compendium/cm/blueprint-cm.xsd (original)
+++ geronimo/sandbox/blueprint/blueprint-cm/src/main/resources/org/apache/geronimo/blueprint/compendium/cm/blueprint-cm.xsd Thu Jun  4 15:35:21 2009
@@ -101,8 +101,8 @@
     <xsd:complexType name="TmanagedComponent">
         <xsd:group ref="bp:beanElements"/>
         <xsd:attribute name="class" type="bp:Tclass"/>
-        <xsd:attribute name="init-method" type="bp:TnullableMethod"/>
-        <xsd:attribute name="destroy-method" type="bp:TnullableMethod"/>
+        <xsd:attribute name="init-method" type="bp:Tmethod"/>
+        <xsd:attribute name="destroy-method" type="bp:Tmethod"/>
         <xsd:attribute name="factory-method" type="bp:Tmethod"/>
         <xsd:attribute name="factory-component" type="bp:Tidref"/>
         <xsd:anyAttribute namespace="##other" processContents="lax"/>

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/AbstractServiceReferenceRecipe.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/AbstractServiceReferenceRecipe.java?rev=781778&r1=781777&r2=781778&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/AbstractServiceReferenceRecipe.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/AbstractServiceReferenceRecipe.java Thu Jun  4 15:35:21 2009
@@ -55,6 +55,8 @@
 /**
  * Abstract class for service reference recipes.
  *
+ * TODO: handle dependsOn on references
+ *
  * @author <a href="mailto:dev@geronimo.apache.org">Apache Geronimo Project</a>
  * @version $Rev: 760378 $, $Date: 2009-03-31 11:31:38 +0200 (Tue, 31 Mar 2009) $
  */

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/Parser.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/Parser.java?rev=781778&r1=781777&r2=781778&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/Parser.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/Parser.java Thu Jun  4 15:35:21 2009
@@ -97,6 +97,8 @@
 /**
  * TODO: javadoc
  *
+ * TODO: parse compliance attribute on <blueprint>
+ *
  * @author <a href="mailto:dev@geronimo.apache.org">Apache Geronimo Project</a>
  * @version $Rev: 760378 $, $Date: 2009-03-31 11:31:38 +0200 (Tue, 31 Mar 2009) $
  */
@@ -486,7 +488,7 @@
             throw new ComponentDefinitionException("Attribute " + INITIALIZATION_ATTRIBUTE + " must be equals to " + INITIALIZATION_EAGER + " or " + INITIALIZATION_LAZY);
         }
         if (element.hasAttribute(DEPENDS_ON_ATTRIBUTE)) {
-            metadata.setExplicitDependencies(parseList(element.getAttribute(DEPENDS_ON_ATTRIBUTE)));
+            metadata.setDependsOn(parseList(element.getAttribute(DEPENDS_ON_ATTRIBUTE)));
         }
         if (element.hasAttribute(INIT_METHOD_ATTRIBUTE)) {
             metadata.setInitMethodName(element.getAttribute(INIT_METHOD_ATTRIBUTE));
@@ -574,7 +576,7 @@
             service.setServiceComponent(new RefMetadataImpl(element.getAttribute(REF_ATTRIBUTE)));
         }
         if (element.hasAttribute(DEPENDS_ON_ATTRIBUTE)) {
-            service.setExplicitDependencies(parseList(element.getAttribute(DEPENDS_ON_ATTRIBUTE)));
+            service.setDependsOn(parseList(element.getAttribute(DEPENDS_ON_ATTRIBUTE)));
         }
         String autoExport = element.hasAttribute(AUTO_EXPORT_ATTRIBUTE) ? element.getAttribute(AUTO_EXPORT_ATTRIBUTE) : AUTO_EXPORT_DEFAULT;
         if (AUTO_EXPORT_DISABLED.equals(autoExport)) {
@@ -997,6 +999,9 @@
         } else {
             throw new ComponentDefinitionException("Attribute " + INITIALIZATION_ATTRIBUTE + " must be equals to " + INITIALIZATION_EAGER + " or " + INITIALIZATION_LAZY);
         }
+        if (element.hasAttribute(DEPENDS_ON_ATTRIBUTE)) {
+            reference.setDependsOn(parseList(element.getAttribute(DEPENDS_ON_ATTRIBUTE)));
+        }
         if (element.hasAttribute(INTERFACE_ATTRIBUTE)) {
             reference.setInterfaceNames(Collections.singletonList(element.getAttribute(INTERFACE_ATTRIBUTE)));
         }

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/RecipeBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/RecipeBuilder.java?rev=781778&r1=781777&r2=781778&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/RecipeBuilder.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/RecipeBuilder.java Thu Jun  4 15:35:21 2009
@@ -189,7 +189,7 @@
                 beanMetadata.getRuntimeClass() != null ? beanMetadata.getRuntimeClass() : beanMetadata.getClassName());
         // Create refs for explicit dependencies
         List<Recipe> deps = new ArrayList<Recipe>();
-        for (String name : beanMetadata.getExplicitDependencies()) {
+        for (String name : beanMetadata.getDependsOn()) {
             deps.add(new RefRecipe(getName(null), name));
         }
         recipe.setExplicitDependencies(deps);

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/mutable/MutableBeanMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/mutable/MutableBeanMetadata.java?rev=781778&r1=781777&r2=781778&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/mutable/MutableBeanMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/mutable/MutableBeanMetadata.java Thu Jun  4 15:35:21 2009
@@ -32,8 +32,6 @@
  */
 public interface MutableBeanMetadata extends ExtendedBeanMetadata, MutableComponentMetadata {
 
-    void setId(String id);
-
     void setClassName(String className);
 
     void setInitMethodName(String initMethodName);
@@ -58,10 +56,6 @@
 
     void setScope(String scope);
 
-    void addExplicitDependency(String dependency);
-
-    void removeExplicitDependency(String dependency);
-
     void setRuntimeClass(Class runtimeClass);
 
     void setProcessor(boolean processor);

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/mutable/MutableComponentMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/mutable/MutableComponentMetadata.java?rev=781778&r1=781777&r2=781778&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/mutable/MutableComponentMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/mutable/MutableComponentMetadata.java Thu Jun  4 15:35:21 2009
@@ -18,6 +18,8 @@
  */
 package org.apache.geronimo.blueprint.mutable;
 
+import java.util.List;
+
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
 
 /**
@@ -32,4 +34,10 @@
 
     void setInitialization(int initialization);
 
+    void setDependsOn(List<String> dependsOn);
+
+    void addDependsOn(String dependency);
+
+    void removeDependsOn(String dependency);
+
 }
\ No newline at end of file

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/mutable/MutableServiceMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/mutable/MutableServiceMetadata.java?rev=781778&r1=781777&r2=781778&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/mutable/MutableServiceMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/mutable/MutableServiceMetadata.java Thu Jun  4 15:35:21 2009
@@ -33,8 +33,6 @@
  */
 public interface MutableServiceMetadata extends ServiceMetadata, MutableComponentMetadata {
 
-    void setId(String id);
-
     void setServiceComponent(Target serviceComponent);
 
     void addInterfaceName(String interfaceName);
@@ -59,8 +57,4 @@
 
     void removeRegistrationListener(RegistrationListener listener);
 
-    void addExplicitDependency(String dependency);
-
-    void removeExplicitDependency(String dependency);
-
 }
\ No newline at end of file

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/BeanMetadataImpl.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/BeanMetadataImpl.java?rev=781778&r1=781777&r2=781778&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/BeanMetadataImpl.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/BeanMetadataImpl.java Thu Jun  4 15:35:21 2009
@@ -47,7 +47,6 @@
     private Target factoryComponent;
     private String scope;
     private Class runtimeClass;
-    private List<String> explicitDependencies;
     private boolean processor;
 
     public BeanMetadataImpl() {
@@ -70,7 +69,7 @@
         this.factoryComponent = MetadataUtil.cloneTarget(source.getFactoryComponent());
         this.scope = source.getScope();
         this.runtimeClass = source.getRuntimeClass();
-        this.explicitDependencies = new ArrayList<String>(source.getExplicitDependencies());
+        this.dependsOn = new ArrayList<String>(source.getDependsOn());
     }
 
     public String getClassName() {
@@ -191,31 +190,6 @@
         this.runtimeClass = runtimeClass;
     }
 
-    public List<String> getExplicitDependencies() {
-        if (this.explicitDependencies == null) {
-            return Collections.emptyList();
-        } else {
-            return Collections.unmodifiableList(this.explicitDependencies);
-        }
-    }
-
-    public void setExplicitDependencies(List<String> explicitDependencies) {
-        this.explicitDependencies = explicitDependencies != null ? new ArrayList<String>(explicitDependencies) : null;
-    }
-
-    public void addExplicitDependency(String explicitDependency) {
-        if (this.explicitDependencies == null) {
-            this.explicitDependencies = new ArrayList<String>();
-        }
-        this.explicitDependencies.add(explicitDependency);
-    }
-
-    public void removeExplicitDependency(String dependency) {
-        if (this.explicitDependencies != null) {
-            this.explicitDependencies.remove(dependency);
-        }
-    }
-
     public boolean isProcessor() {
         return processor;
     }
@@ -238,7 +212,7 @@
                 ", factoryComponent=" + factoryComponent +
                 ", scope='" + scope + '\'' +
                 ", runtimeClass=" + runtimeClass +
-                ", explicitDependencies=" + explicitDependencies +
+                ", explicitDependencies=" + dependsOn +
                 ']';
     }
 }

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/ComponentMetadataImpl.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/ComponentMetadataImpl.java?rev=781778&r1=781777&r2=781778&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/ComponentMetadataImpl.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/ComponentMetadataImpl.java Thu Jun  4 15:35:21 2009
@@ -18,6 +18,10 @@
  */
 package org.apache.geronimo.blueprint.reflect;
 
+import java.util.List;
+import java.util.Collections;
+import java.util.ArrayList;
+
 import org.apache.geronimo.blueprint.mutable.MutableComponentMetadata;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
 
@@ -31,6 +35,7 @@
 
     protected String id;
     protected int initialization = INITIALIZATION_EAGER;
+    protected List<String> dependsOn;
 
     protected ComponentMetadataImpl() {
     }
@@ -54,4 +59,29 @@
     public void setInitialization(int initialization) {
         this.initialization = initialization;
     }
+
+    public List<String> getDependsOn() {
+        if (this.dependsOn == null) {
+            return Collections.emptyList();
+        } else {
+            return Collections.unmodifiableList(this.dependsOn);
+        }
+    }
+
+    public void setDependsOn(List<String> dependsOn) {
+        this.dependsOn = dependsOn != null ? new ArrayList<String>(dependsOn) : null;
+    }
+
+    public void addDependsOn(String explicitDependency) {
+        if (this.dependsOn == null) {
+            this.dependsOn = new ArrayList<String>();
+        }
+        this.dependsOn.add(explicitDependency);
+    }
+
+    public void removeDependsOn(String dependency) {
+        if (this.dependsOn != null) {
+            this.dependsOn.remove(dependency);
+        }
+    }
 }

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/ServiceMetadataImpl.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/ServiceMetadataImpl.java?rev=781778&r1=781777&r2=781778&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/ServiceMetadataImpl.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/ServiceMetadataImpl.java Thu Jun  4 15:35:21 2009
@@ -188,14 +188,14 @@
         this.explicitDependencies = explicitDependencies;
     }
 
-    public void addExplicitDependency(String explicitDependency) {
+    public void addDependsOn(String explicitDependency) {
         if (this.explicitDependencies == null) {
             this.explicitDependencies = new ArrayList<String>();
         }
         this.explicitDependencies.add(explicitDependency);
     }
 
-    public void removeExplicitDependency(String dependency) {
+    public void removeDependsOn(String dependency) {
         if (this.explicitDependencies != null) {
             this.explicitDependencies.remove(dependency);
         }

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=781778&r1=781777&r2=781778&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 Thu Jun  4 15:35:21 2009
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!--
     /*
-    * $Revision: 7065 $
+    * $Revision: 7250 $
     *
     * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
     *
@@ -71,6 +71,22 @@
                 </xsd:documentation>
             </xsd:annotation>
         </xsd:attribute>
+
+        <xsd:attribute name="depends-on" type="TdependsOn" use="optional">
+            <xsd:annotation>
+                <xsd:documentation>
+                  <![CDATA[
+                  depends-on identifies (by name) other components that this component
+                  depends on.  The component only be activated after the
+                  depends-on components are successfully activated.  Also, if there
+                  are <reference>, <ref-list>, <ref-set> elements with unstatisfied
+                  manadatory references, then the depends-on relationship will also
+                  be used to determine whether this service is registered or
+                  unregistered.
+                  ]]>
+                </xsd:documentation>
+            </xsd:annotation>
+        </xsd:attribute>
     </xsd:complexType>
 
     <xsd:element name="blueprint" type="Tblueprint">
@@ -150,6 +166,17 @@
                 </xsd:documentation>
             </xsd:annotation>
         </xsd:attribute>
+        <xsd:attribute name="compliance" type="Tcompliance" default="strict">
+            <xsd:annotation>
+                <xsd:documentation>
+                  <![CDATA[
+                  Specifies the whether the blueprint definition must be interpreted
+                  using strict specification compliance, or whether additional extensions
+                  can be enabled.
+                  ]]>
+                </xsd:documentation>
+            </xsd:annotation>
+        </xsd:attribute>
         <xsd:anyAttribute namespace="##other" processContents="lax" />
     </xsd:complexType>
 
@@ -252,9 +279,8 @@
             <xsd:extension base="Tcomponent">
                 <xsd:group ref="beanElements" />
                 <xsd:attribute name="class" type="Tclass" />
-                <xsd:attribute name="depends-on" type="TdependsOn" />
-                <xsd:attribute name="init-method" type="TnullableMethod" />
-                <xsd:attribute name="destroy-method" type="TnullableMethod" />
+                <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" />
@@ -278,8 +304,7 @@
                 <xsd:group ref="beanElements" />
                 <xsd:attribute name="id" use="prohibited"/>
                 <xsd:attribute name="class" type="Tclass" />
-                <xsd:attribute name="depends-on" type="TdependsOn" />
-                <xsd:attribute name="init-method" type="TnullableMethod" />
+                <xsd:attribute name="init-method" type="Tmethod" />
                 <xsd:attribute name="destroy-method" use="prohibited"/>
                 <xsd:attribute name="factory-method" type="Tmethod" />
                 <xsd:attribute name="factory-ref" type="Tidref" />
@@ -402,6 +427,7 @@
                 <xsd:attribute name="component-name" type="Tidref" use="optional"/>
                 <xsd:attribute name="availability" type="Tavailability" use="optional"/>
                 <xsd:attribute name="timeout" type="Ttimeout" use="optional"/>
+                <xsd:attribute name="depends-on" type="TdependsOn" use="optional"/>
                 <xsd:anyAttribute namespace="##other" processContents="lax" />
             </xsd:restriction>
         </xsd:complexContent>
@@ -504,6 +530,7 @@
                 <xsd:attribute name="comparator-ref" type="Tidref" use="optional"/>
                 <xsd:attribute name="member-type" use="optional" type="Tservice-use"/>
                 <xsd:attribute name="ordering-basis" use="optional" type="Tservice-use"/>
+                <xsd:attribute name="depends-on" type="TdependsOn" use="optional"/>
                 <xsd:anyAttribute namespace="##other" processContents="lax" />
             </xsd:restriction>
         </xsd:complexContent>
@@ -614,8 +641,8 @@
         </xsd:annotation>
         <xsd:group ref="targetComponent" />
         <xsd:attribute name="ref" type="xsd:NMTOKEN" use="optional" />
-        <xsd:attribute name="bind-method" type="Tmethod" use="required" />
-        <xsd:attribute name="unbind-method" type="Tmethod" use="required" />
+        <xsd:attribute name="bind-method" type="Tmethod" use="optional" />
+        <xsd:attribute name="unbind-method" type="Tmethod" use="optional" />
     </xsd:complexType>
 
     <xsd:simpleType name="Tinitialization">
@@ -638,7 +665,7 @@
         <xsd:annotation>
             <xsd:documentation>
               <![CDATA[
-              Tlazy-init defines an availability attribute type.  This is used in this
+              Tavailability defines an availability attribute type.  This is used in this
               schema by the <blueprint> default-availability attribute and the
               <reference>, <ref-set>, and <ref-list> availability attribute.
               ]]>
@@ -650,6 +677,21 @@
         </xsd:restriction>
     </xsd:simpleType>
 
+    <xsd:simpleType name="Tcompliance">
+        <xsd:annotation>
+            <xsd:documentation>
+              <![CDATA[
+              Tcompliance defines a compliance attribute type.  This is used in this
+              schema by the <blueprint> compliance atribute.
+              ]]>
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="strict"/>
+            <xsd:enumeration value="loose" />
+        </xsd:restriction>
+    </xsd:simpleType>
+
     <xsd:complexType name="Tcomparator">
         <xsd:group ref="targetComponent" />
         <xsd:attribute name="ref" type="Tidref" />
@@ -676,21 +718,6 @@
                 </xsd:sequence>
                 <xsd:attribute name="interface" type="Tclass" use="optional" />
                 <xsd:attribute name="ref" type="Tidref" use="optional" />
-                <xsd:attribute name="depends-on" type="TdependsOn" use="optional">
-                    <xsd:annotation>
-                        <xsd:documentation>
-                          <![CDATA[
-                          depends-on identifies (by name) other components that this service
-                          depends on.  The service will only be registered after the
-                          depends-on services are successfully completed.  Also, if there
-                          are <reference>, <ref-list>, <ref-set> elements with unstatisfied
-                          manadatory references, then the depends-on relationship will also
-                          be used to determine whether this service is registered or
-                          unregistered.
-                          ]]>
-                        </xsd:documentation>
-                    </xsd:annotation>
-                </xsd:attribute>
                 <xsd:attribute name="auto-export" type="TautoExportModes" default="disabled" />
                 <xsd:attribute name="ranking" type="xsd:int" default="0">
                     <xsd:annotation>
@@ -817,8 +844,8 @@
         <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:attribute name="registration-method" type="Tmethod" use="optional" />
+        <xsd:attribute name="unregistration-method" type="Tmethod" use="optional" />
     </xsd:complexType>
 
     <!--
@@ -1118,22 +1145,6 @@
         <xsd:restriction base="xsd:NCName" />
     </xsd:simpleType>
 
-    <xsd:simpleType name="TnullableMethod">
-        <xsd:annotation>
-            <xsd:documentation>
-              <![CDATA[
-              Tmethod is a base type that should be used for all attributes that
-              refer to java method names.  This version also allows "" to be
-              specified to specify that no name should be used.
-              ]]>
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:restriction base="xsd:NMTOKEN">
-            <xsd:pattern value="[\i-[:]][\c-[:]]*" />
-            <xsd:pattern value="" />
-        </xsd:restriction>
-    </xsd:simpleType>
-
     <!-- Should be used for all attributes and elements that refer to method names -->
     <xsd:simpleType name="Tidref">
         <xsd:annotation>

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=781778&r1=781777&r2=781778&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 Thu Jun  4 15:35:21 2009
@@ -55,7 +55,7 @@
         assertEquals("pojoA", component.getId());
         assertTrue(component instanceof BeanMetadata);
         BeanMetadata local = (BeanMetadata) component;
-        List<String> deps = local.getExplicitDependencies();
+        List<String> deps = local.getDependsOn();
         assertNotNull(deps);
         assertEquals(2, deps.size());
         assertTrue(deps.contains("pojoB"));