Author: jboynes
Date: Sun Apr  9 08:19:54 2006
New Revision: 392756

URL: http://svn.apache.org/viewcvs?rev=392756&view=rev
Log:
some cleanup on the ConfigurationException hierarchy

Added:
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/InvalidSetterException.java
   (with props)
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingContextFactoryException.java
   (with props)
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingImplementationException.java
   (with props)
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingScopeException.java
   (with props)
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/ProxyConfigurationException.java
   (with props)
Removed:
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConfigurationException.java
Modified:
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/ConfigurationException.java
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/impl/Java5ComponentTypeIntrospector.java
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/AbstractCompositeContext.java
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/CompositeContextImpl.java
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemCompositeContextImpl.java

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/ConfigurationException.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/ConfigurationException.java?rev=392756&r1=392755&r2=392756&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/ConfigurationException.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/ConfigurationException.java
 Sun Apr  9 08:19:54 2006
@@ -24,7 +24,9 @@
  * 
  * @version $Rev$ $Date$
  */
-public class ConfigurationException extends TuscanyException {
+public abstract class ConfigurationException extends TuscanyException {
+    private static final long serialVersionUID = 7441469809266868036L;
+
     public ConfigurationException() {
     }
 

Added: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/InvalidSetterException.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/InvalidSetterException.java?rev=392756&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/InvalidSetterException.java
 (added)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/InvalidSetterException.java
 Sun Apr  9 08:19:54 2006
@@ -0,0 +1,39 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.tuscany.core.config;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class InvalidSetterException extends ConfigurationException {
+    private static final long serialVersionUID = -3298236203808038211L;
+
+    public InvalidSetterException() {
+    }
+
+    public InvalidSetterException(String message) {
+        super(message);
+    }
+
+    public InvalidSetterException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public InvalidSetterException(Throwable cause) {
+        super(cause);
+    }
+}

Propchange: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/InvalidSetterException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/InvalidSetterException.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/impl/Java5ComponentTypeIntrospector.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/impl/Java5ComponentTypeIntrospector.java?rev=392756&r1=392755&r2=392756&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/impl/Java5ComponentTypeIntrospector.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/config/impl/Java5ComponentTypeIntrospector.java
 Sun Apr  9 08:19:54 2006
@@ -19,6 +19,7 @@
 import org.apache.tuscany.core.config.ComponentTypeIntrospector;
 import org.apache.tuscany.core.config.ConfigurationException;
 import org.apache.tuscany.core.config.JavaIntrospectionHelper;
+import org.apache.tuscany.core.config.InvalidSetterException;
 import org.apache.tuscany.core.system.annotation.Autowire;
 import org.apache.tuscany.core.system.assembly.SystemAssemblyFactory;
 import org.apache.tuscany.model.assembly.AssemblyFactory;
@@ -331,11 +332,11 @@
 
     protected void addProperty(List<Property> properties, Method method) 
throws ConfigurationException {
         if (!Void.class.equals(method.getReturnType())) {
-            throw new ConfigurationException("Property setter method does not 
return void: " + method.toString());
+            throw new InvalidSetterException(method.toString());
         }
         Class<?>[] params = method.getParameterTypes();
         if (params.length != 1) {
-            throw new ConfigurationException("Property setter method does not 
have 1 parameter: " + method.toString());
+            throw new InvalidSetterException(method.toString());
         }
 
         String name;
@@ -392,11 +393,11 @@
 
     protected void addReference(List<Reference> references, Method method) 
throws ConfigurationException {
         if (!Void.TYPE.equals(method.getReturnType())) {
-            throw new ConfigurationException("Reference setter method does not 
return void: " + method.toString());
+            throw new InvalidSetterException(method.toString());
         }
         Class<?>[] params = method.getParameterTypes();
         if (params.length != 1) {
-            throw new ConfigurationException("Reference setter method does not 
have 1 parameter: " + method.toString());
+            throw new InvalidSetterException(method.toString());
         }
 
         String name;

Added: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingContextFactoryException.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingContextFactoryException.java?rev=392756&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingContextFactoryException.java
 (added)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingContextFactoryException.java
 Sun Apr  9 08:19:54 2006
@@ -0,0 +1,42 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.tuscany.core.context;
+
+import org.apache.tuscany.core.config.ConfigurationException;
+
+/**
+ *
+ * @version $Rev$ $Date$
+ */
+public class MissingContextFactoryException extends ConfigurationException {
+    private static final long serialVersionUID = 5140433835245354247L;
+
+    public MissingContextFactoryException() {
+    }
+
+    public MissingContextFactoryException(String message) {
+        super(message);
+    }
+
+    public MissingContextFactoryException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public MissingContextFactoryException(Throwable cause) {
+        super(cause);
+    }
+}

Propchange: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingContextFactoryException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingContextFactoryException.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingImplementationException.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingImplementationException.java?rev=392756&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingImplementationException.java
 (added)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingImplementationException.java
 Sun Apr  9 08:19:54 2006
@@ -0,0 +1,42 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.tuscany.core.context;
+
+import org.apache.tuscany.core.config.ConfigurationException;
+
+/**
+ *
+ * @version $Rev$ $Date$
+ */
+public class MissingImplementationException extends ConfigurationException {
+    private static final long serialVersionUID = 7274481740916067128L;
+
+    public MissingImplementationException() {
+    }
+
+    public MissingImplementationException(String message) {
+        super(message);
+    }
+
+    public MissingImplementationException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public MissingImplementationException(Throwable cause) {
+        super(cause);
+    }
+}

Propchange: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingImplementationException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingImplementationException.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingScopeException.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingScopeException.java?rev=392756&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingScopeException.java
 (added)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingScopeException.java
 Sun Apr  9 08:19:54 2006
@@ -0,0 +1,42 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.tuscany.core.context;
+
+import org.apache.tuscany.core.config.ConfigurationException;
+
+/**
+ *
+ * @version $Rev$ $Date$
+ */
+public class MissingScopeException extends ConfigurationException {
+    private static final long serialVersionUID = -6999184494724096056L;
+
+    public MissingScopeException() {
+    }
+
+    public MissingScopeException(String message) {
+        super(message);
+    }
+
+    public MissingScopeException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public MissingScopeException(Throwable cause) {
+        super(cause);
+    }
+}

Propchange: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingScopeException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/MissingScopeException.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/ProxyConfigurationException.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/ProxyConfigurationException.java?rev=392756&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/ProxyConfigurationException.java
 (added)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/ProxyConfigurationException.java
 Sun Apr  9 08:19:54 2006
@@ -0,0 +1,42 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.tuscany.core.context;
+
+import org.apache.tuscany.core.config.ConfigurationException;
+
+/**
+ *
+ * @version $Rev$ $Date$
+ */
+public class ProxyConfigurationException extends ConfigurationException {
+    private static final long serialVersionUID = -5860342620108741058L;
+
+    public ProxyConfigurationException() {
+    }
+
+    public ProxyConfigurationException(String message) {
+        super(message);
+    }
+
+    public ProxyConfigurationException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public ProxyConfigurationException(Throwable cause) {
+        super(cause);
+    }
+}

Propchange: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/ProxyConfigurationException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/ProxyConfigurationException.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/AbstractCompositeContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/AbstractCompositeContext.java?rev=392756&r1=392755&r2=392756&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/AbstractCompositeContext.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/AbstractCompositeContext.java
 Sun Apr  9 08:19:54 2006
@@ -22,6 +22,10 @@
 import org.apache.tuscany.core.context.ScopeContext;
 import org.apache.tuscany.core.context.ScopeStrategy;
 import org.apache.tuscany.core.context.TargetException;
+import org.apache.tuscany.core.context.MissingImplementationException;
+import org.apache.tuscany.core.context.MissingContextFactoryException;
+import org.apache.tuscany.core.context.ProxyConfigurationException;
+import org.apache.tuscany.core.context.MissingScopeException;
 import org.apache.tuscany.core.context.scope.DefaultScopeStrategy;
 import org.apache.tuscany.core.invocation.InvocationConfiguration;
 import org.apache.tuscany.core.invocation.ProxyConfiguration;
@@ -51,7 +55,7 @@
 
 /**
  * The base implementation of an composite context
- * 
+ *
  * @version $Rev$ $Date$
  */
 public abstract class AbstractCompositeContext extends AbstractContext 
implements AutowireContext, ScopeAwareContext {
@@ -267,14 +271,14 @@
             for (Component component : newModule.getComponents()) {
                 ComponentImplementation componentImplementation = 
component.getComponentImplementation();
                 if (componentImplementation == null) {
-                    ConfigurationException e = new 
ConfigurationException("Component implementation not set");
+                    ConfigurationException e = new 
MissingImplementationException("Component implementation not set");
                     e.addContextName(component.getName());
                     e.addContextName(getName());
                     throw e;
                 }
                 configuration = (ContextFactory) 
componentImplementation.getContextFactory();
                 if (configuration == null) {
-                    ConfigurationException e = new 
ConfigurationException("Context factory not set");
+                    ConfigurationException e = new 
MissingContextFactoryException("Context factory not set");
                     e.addContextName(component.getName());
                     e.addContextName(getName());
                     throw e;
@@ -285,7 +289,7 @@
             for (EntryPoint ep : newModule.getEntryPoints()) {
                 configuration = (ContextFactory) 
ep.getConfiguredReference().getContextFactory();
                 if (configuration == null) {
-                    ConfigurationException e = new 
ConfigurationException("Context factory not set");
+                    ConfigurationException e = new 
MissingContextFactoryException("Context factory not set");
                     e.setIdentifier(ep.getName());
                     e.addContextName(getName());
                     throw e;
@@ -296,7 +300,7 @@
             for (ExternalService service : newModule.getExternalServices()) {
                 configuration = (ContextFactory) 
service.getConfiguredService().getContextFactory();
                 if (configuration == null) {
-                    ConfigurationException e = new 
ConfigurationException("Context factory not set");
+                    ConfigurationException e = new 
MissingContextFactoryException("Context factory not set");
                     e.setIdentifier(service.getName());
                     e.addContextName(getName());
                     throw e;
@@ -324,7 +328,9 @@
                             }
                         }
                     } catch (ProxyInitializationException e) {
-                        throw new ConfigurationException(e);
+                        ProxyConfigurationException ce = new 
ProxyConfigurationException(e);
+                        ce.addContextName(getName());
+                        throw ce;
                     }
 
                 }
@@ -347,7 +353,9 @@
                             }
                         }
                     } catch (ProxyInitializationException e) {
-                        throw new ConfigurationException(e);
+                        ProxyConfigurationException ce = new 
ProxyConfigurationException(e);
+                        ce.addContextName(getName());
+                        throw ce;
                     }
 
                 }
@@ -369,7 +377,9 @@
                             }
                         }
                     } catch (ProxyInitializationException e) {
-                        throw new ConfigurationException(e);
+                        ProxyConfigurationException ce = new 
ProxyConfigurationException(e);
+                        ce.addContextName(getName());
+                        throw ce;
                     }
 
                 }
@@ -400,7 +410,7 @@
                 throw e;
             }
             if (configuration == null) {
-                ConfigurationException e = new ConfigurationException("Context 
factory not set");
+                ConfigurationException e = new 
MissingContextFactoryException("Context factory not set");
                 if (model instanceof Part) {
                     e.setIdentifier(((Part) model).getName());
                 }
@@ -421,7 +431,7 @@
             // configuration.prepare(this);
             ScopeContext scope = scopeContexts.get(configuration.getScope());
             if (scope == null) {
-                ConfigurationException e = new 
ConfigurationException("Component has an unknown scope");
+                ConfigurationException e = new 
MissingScopeException("Component has an unknown scope");
                 e.addContextName(configuration.getName());
                 e.addContextName(getName());
                 throw e;
@@ -487,7 +497,7 @@
 
     /**
      * Registers a model object as autowirable
-     * 
+     *
      * @throws org.apache.tuscany.core.context.ContextInitException
      */
     protected abstract void registerAutowire(Extensible model) throws 
ConfigurationException;

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/CompositeContextImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/CompositeContextImpl.java?rev=392756&r1=392755&r2=392756&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/CompositeContextImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/CompositeContextImpl.java
 Sun Apr  9 08:19:54 2006
@@ -31,6 +31,7 @@
 import org.apache.tuscany.core.context.Context;
 import org.apache.tuscany.core.context.TargetException;
 import org.apache.tuscany.core.context.AutowireResolutionException;
+import org.apache.tuscany.core.context.MissingScopeException;
 import org.apache.tuscany.core.invocation.spi.ProxyFactory;
 import org.apache.tuscany.core.system.annotation.Autowire;
 import org.apache.tuscany.core.system.assembly.SystemBinding;
@@ -52,7 +53,7 @@
 
 /**
  * The standard implementation of an composite context. Autowiring is 
performed by delegating to the parent context.
- * 
+ *
  * @version $Rev$ $Date$
  */
 public class CompositeContextImpl extends AbstractCompositeContext implements 
ConfigurationContext, ModuleContext {
@@ -191,7 +192,7 @@
                             ScopeContext scope = 
scopeContexts.get(((ContextFactory) ep.getConfiguredReference()
                                     .getContextFactory()).getScope());
                             if (scope == null) {
-                                ConfigurationException ce = new 
ConfigurationException("Scope not found for entry point");
+                                ConfigurationException ce = new 
MissingScopeException("Scope not found for entry point");
                                 ce.setIdentifier(ep.getName());
                                 ce.addContextName(getName());
                                 throw ce;

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemCompositeContextImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemCompositeContextImpl.java?rev=392756&r1=392755&r2=392756&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemCompositeContextImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemCompositeContextImpl.java
 Sun Apr  9 08:19:54 2006
@@ -40,6 +40,8 @@
 import org.apache.tuscany.core.context.ScopeStrategy;
 import org.apache.tuscany.core.context.SystemCompositeContext;
 import org.apache.tuscany.core.context.TargetException;
+import org.apache.tuscany.core.context.MissingContextFactoryException;
+import org.apache.tuscany.core.context.MissingScopeException;
 import org.apache.tuscany.core.context.impl.EventContextImpl;
 import org.apache.tuscany.core.invocation.jdk.JDKProxyFactoryFactory;
 import org.apache.tuscany.core.invocation.spi.ProxyFactory;
@@ -325,7 +327,7 @@
             for (Component component : newModule.getComponents()) {
                 configuration = (ContextFactory<Context>) 
component.getComponentImplementation().getContextFactory();
                 if (configuration == null) {
-                    ConfigurationException e = new 
ConfigurationException("Runtime configuration not set");
+                    ConfigurationException e = new 
MissingContextFactoryException("Context factory not set");
                     e.addContextName(component.getName());
                     e.addContextName(getName());
                     throw e;
@@ -336,7 +338,7 @@
             for (EntryPoint ep : newModule.getEntryPoints()) {
                 configuration = (ContextFactory<Context>) 
ep.getConfiguredReference().getContextFactory();
                 if (configuration == null) {
-                    ConfigurationException e = new 
ConfigurationException("Runtime configuration not set");
+                    ConfigurationException e = new 
MissingContextFactoryException("Context factory not set");
                     e.setIdentifier(ep.getName());
                     e.addContextName(getName());
                     throw e;
@@ -347,7 +349,7 @@
             for (ExternalService service : newModule.getExternalServices()) {
                 configuration = (ContextFactory<Context>) 
service.getConfiguredService().getContextFactory();
                 if (configuration == null) {
-                    ConfigurationException e = new 
ConfigurationException("Runtime configuration not set");
+                    ConfigurationException e = new 
MissingContextFactoryException("Context factory not set");
                     e.setIdentifier(service.getName());
                     e.addContextName(getName());
                     throw e;
@@ -379,8 +381,7 @@
                 throw e;
             }
             if (configuration == null) {
-                ConfigurationException e = new ConfigurationException(
-                        "Runtime configuration not set. Ensure a runtime 
configuration builder is registered for the component implementation type");
+                ConfigurationException e = new 
MissingContextFactoryException("Context factory not set");
                 if (model instanceof AggregatePart) {
                     e.setIdentifier(((AggregatePart) model).getName());
                 }
@@ -409,7 +410,7 @@
             try {
                 ScopeContext scope = scopeContexts.get(factory.getScope());
                 if (scope == null) {
-                    ConfigurationException e = new 
ConfigurationException("Component has an unknown scope");
+                    ConfigurationException e = new 
MissingScopeException("Component has an unknown scope");
                     e.addContextName(factory.getName());
                     e.addContextName(getName());
                     throw e;
@@ -572,7 +573,7 @@
                             ScopeContext scope = 
scopeContexts.get(((ContextFactory) ep.getConfiguredReference()
                                     .getContextFactory()).getScope());
                             if (scope == null) {
-                                ConfigurationException ce = new 
ConfigurationException("Scope not found for entry point");
+                                ConfigurationException ce = new 
MissingScopeException("Scope not found for entry point");
                                 ce.setIdentifier(ep.getName());
                                 ce.addContextName(getName());
                                 throw ce;


Reply via email to