You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2007/08/22 14:46:11 UTC

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

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: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org