Author: slaws
Date: Wed Aug 22 05:46:11 2007
New Revision: 568594

URL: http://svn.apache.org/viewvc?rev=568594&view=rev
Log:
Thorw exceptions is SCA namespace extensions appear out of place.

Modified:
    
incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java

Modified: 
incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java?rev=568594&r1=568593&r2=568594&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
 Wed Aug 22 05:46:11 2007
@@ -300,7 +300,15 @@
 
                                     // <service><interface> and
                                     // <reference><interface>
-                                    
contract.setInterfaceContract((InterfaceContract)extension);
+                                    if (contract != null) {
+                                        
contract.setInterfaceContract((InterfaceContract)extension);
+                                    } else {
+                                        if 
(name.getNamespaceURI().equals(SCA10_NS)){
+                                            throw new 
ContributionReadException("Unexpected <interface> element found. It should 
appear inside a <service> or <reference> element");
+                                        } else {
+                                            
composite.getExtensions().add(extension);
+                                        }
+                                    }
 
                                 } else if (extension instanceof Binding) {
                                     // <service><binding> and
@@ -308,13 +316,29 @@
                                     if (callback != null) {
                                         
callback.getBindings().add((Binding)extension);
                                     } else {
-                                        
contract.getBindings().add((Binding)extension);
+                                        if (contract != null) {
+                                            
contract.getBindings().add((Binding)extension);
+                                        } else {
+                                            if 
(name.getNamespaceURI().equals(SCA10_NS)){
+                                                throw new 
ContributionReadException("Unexpected <binding> element found. It should appear 
inside a <service> or <reference> element");
+                                            } else {
+                                                
composite.getExtensions().add(extension);
+                                            }
+                                        }
                                     }
 
                                 } else if (extension instanceof 
Implementation) {
 
                                     // <component><implementation>
-                                    
component.setImplementation((Implementation)extension);
+                                    if (component != null) {
+                                        
component.setImplementation((Implementation)extension);
+                                    } else {
+                                        if 
(name.getNamespaceURI().equals(SCA10_NS)){
+                                            throw new 
ContributionReadException("Unexpected <implementation> element found. It should 
appear inside a <component> element");
+                                        } else {
+                                            
composite.getExtensions().add(extension);
+                                        }
+                                    }
                                 } else {
 
                                     // Add the extension element to the current



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to