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 2009/08/13 15:14:23 UTC

svn commit: r803875 [2/3] - in /tuscany/branches/sca-java-1.x: itest/workspace-manager/src/main/java/org/apache/tuscany/sca/artifact/xyz/ itest/workspace-manager/src/main/java/org/apache/tuscany/sca/imprt/xyz/ modules/assembly-xml/src/main/java/org/apa...

Modified: tuscany/branches/sca-java-1.x/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesModelResolver.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesModelResolver.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesModelResolver.java (original)
+++ tuscany/branches/sca-java-1.x/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/xml/SDOTypesModelResolver.java Thu Aug 13 13:14:21 2009
@@ -1,246 +1,246 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.sca.databinding.sdo.xml;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
-import org.apache.tuscany.sca.contribution.Artifact;
-import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.ContributionFactory;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.resolver.ClassReference;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
-import org.apache.tuscany.sca.databinding.sdo.SDOTypes;
-import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.MonitorFactory;
-import org.apache.tuscany.sca.monitor.Problem;
-import org.apache.tuscany.sca.monitor.Problem.Severity;
-import org.apache.tuscany.sca.xsd.XSDFactory;
-import org.apache.tuscany.sca.xsd.XSDefinition;
-import org.apache.tuscany.sdo.api.SDOUtil;
-
-import commonj.sdo.Type;
-import commonj.sdo.helper.HelperContext;
-import commonj.sdo.helper.XSDHelper;
-
-/**
- * SDO types model resolver that aggregates the SDO type registration for an SCA contribution
- */
-public class SDOTypesModelResolver implements ModelResolver {
-    private Contribution contribution;
-    private HelperContext helperContext;
-    private List<SDOTypes> sdoTypes = new ArrayList<SDOTypes>();
-    private ContributionFactory contributionFactory;
-    private XSDFactory xsdFactory;
-    private Monitor monitor;
-
-    public SDOTypesModelResolver(Contribution contribution, ExtensionPointRegistry registry) {
-        super();
-        ModelFactoryExtensionPoint modelFactories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class);
-        this.contributionFactory = modelFactories.getFactory(ContributionFactory.class);
-        this.xsdFactory = modelFactories.getFactory(XSDFactory.class);
-        this.monitor = createMonitor(registry);
-        this.contribution = contribution;
-    }
-
-    private static Monitor createMonitor(ExtensionPointRegistry extensionPoints) {
-        UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
-        if (utilities != null) {
-            MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class);
-            if (monitorFactory != null) {
-                return monitorFactory.createMonitor();
-            }
-        }
-        return null;
-    }
-
-    public void addModel(Object resolved) {
-        if (helperContext == null) {
-            helperContext = SDOUtil.createHelperContext();
-        }
-        SDOTypes types = (SDOTypes)resolved;
-        try {
-            loadSDOTypes(types, contribution.getModelResolver());
-        } catch (ContributionResolveException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-        sdoTypes.add(types);
-    }
-
-    public Object removeModel(Object resolved) {
-        SDOTypes types = (SDOTypes)resolved;
-        return sdoTypes.remove(types);
-    }
-
-    public <T> T resolveModel(Class<T> modelClass, T unresolved) {
-        SDOTypes types = (SDOTypes)unresolved;
-        String ns = types.getNamespace();
-        for (SDOTypes t : sdoTypes) {
-            if (t.getNamespace().equals(types.getNamespace())) {
-                try {
-                    loadSDOTypes(types, contribution.getModelResolver());
-                } catch (ContributionResolveException e) {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                }
-                return (T)t;
-            }
-        }
-        return (T)types;
-    }
-
-    private static void register(Class<?> factoryClass, HelperContext helperContext) throws Exception {
-        Field field = factoryClass.getField("INSTANCE");
-        Object factory = field.get(null);
-        Method method = factory.getClass().getMethod("register", new Class[] {HelperContext.class});
-        method.invoke(factory, new Object[] {helperContext});
-    }
-
-    private void defineFromFactory(SDOTypes importSDO, ModelResolver resolver) throws ContributionResolveException {
-        String factoryName = importSDO.getFactory();
-        if (factoryName != null) {
-            ClassReference reference = new ClassReference(factoryName);
-            ClassReference resolved = resolver.resolveModel(ClassReference.class, reference);
-            if (resolved != null && !resolved.isUnresolved()) {
-                try {
-                    Class<?> factoryClass = resolved.getJavaClass();
-                    // Get the namespace
-                    Field field = factoryClass.getField("NAMESPACE_URI");
-                    importSDO.setNamespace((String)field.get(null));
-                    register(factoryClass, helperContext);
-                    importSDO.setUnresolved(false);
-                } catch (Exception e) {
-                    ContributionResolveException ce = new ContributionResolveException(e);
-                    error("ContributionResolveException", resolver, ce);
-                    //throw ce;
-                }
-            } else {
-                error("FailToResolveClass", resolver, factoryName);
-                //ContributionResolveException loaderException =
-                //new ContributionResolveException("Fail to resolve class: " + factoryName);
-                //throw loaderException;
-            }
-        }
-    }
-
-    private void defineFromXSD(SDOTypes importSDO, ModelResolver resolver) throws ContributionResolveException {
-        String location = importSDO.getSchemaLocation();
-        if (location != null) {
-            try {
-                Artifact artifact = contributionFactory.createArtifact();
-                artifact.setURI(location);
-                artifact = resolver.resolveModel(Artifact.class, artifact);
-                if (artifact.getLocation() != null) {
-                    String wsdlURL = artifact.getLocation();
-                    URLConnection connection = new URL(wsdlURL).openConnection();
-                    connection.setUseCaches(false);
-                    InputStream xsdInputStream = connection.getInputStream();
-                    try {
-                        XSDHelper xsdHelper = helperContext.getXSDHelper();
-                        List<Type> sdoTypes = xsdHelper.define(xsdInputStream, wsdlURL);
-                        for (Type t : sdoTypes) {
-                            importSDO.setNamespace(t.getURI());
-                            break;
-                        }
-                        importSDO.getTypes().addAll(sdoTypes);
-                    } finally {
-                        xsdInputStream.close();
-                    }
-                    importSDO.setUnresolved(false);
-                } else {
-                    error("FailToResolveLocation", resolver, location);
-                    //ContributionResolveException loaderException = new ContributionResolveException("Fail to resolve location: " + location);
-                    //throw loaderException;
-                }
-            } catch (IOException e) {
-                ContributionResolveException ce = new ContributionResolveException(e);
-                error("ContributionResolveException", resolver, ce);
-                //throw ce;
-            }
-        } else {
-            String ns = importSDO.getNamespace();
-            if (ns != null) {
-                XSDefinition xsd = xsdFactory.createXSDefinition();
-                xsd.setUnresolved(true);
-                xsd.setNamespace(ns);
-                xsd = resolver.resolveModel(XSDefinition.class, xsd);
-                if (!xsd.isUnresolved()) {
-                    XSDHelper xsdHelper = helperContext.getXSDHelper();
-                    xsdHelper.define(xsd.getLocation().toString());
-                }
-            }
-        }
-    }
-
-    private void loadSDOTypes(SDOTypes types, ModelResolver resolver) throws ContributionResolveException {
-        synchronized (types) {
-            if (types.isUnresolved()) {
-                defineFromFactory(types, resolver);
-                defineFromXSD(types, resolver);
-                types.setUnresolved(false);
-            }
-        }
-    }
-
-    /**
-     * Report a exception.
-     *
-     * @param problems
-     * @param message
-     * @param model
-     */
-    private void error(String message, Object model, Exception ex) {
-        if (monitor != null) {
-            Problem problem =
-                new ProblemImpl(this.getClass().getName(), "databinding-sdo-validation-messages", Severity.ERROR,
-                                model, message, ex);
-            monitor.problem(problem);
-        }
-    }
-
-    /**
-     * Report a error.
-     *
-     * @param problems
-     * @param message
-     * @param model
-     */
-    private void error(String message, Object model, Object... messageParameters) {
-        if (monitor != null) {
-            Problem problem =
-                new ProblemImpl(this.getClass().getName(), "databinding-sdo-validation-messages", Severity.ERROR,
-                                model, message, (Object[])messageParameters);
-            monitor.problem(problem);
-        }
-    }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.sca.databinding.sdo.xml;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.tuscany.sca.contribution.Artifact;
+import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.contribution.ContributionFactory;
+import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.resolver.ClassReference;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
+import org.apache.tuscany.sca.databinding.sdo.SDOTypes;
+import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.monitor.MonitorFactory;
+import org.apache.tuscany.sca.monitor.Problem;
+import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
+import org.apache.tuscany.sca.xsd.XSDFactory;
+import org.apache.tuscany.sca.xsd.XSDefinition;
+import org.apache.tuscany.sdo.api.SDOUtil;
+
+import commonj.sdo.Type;
+import commonj.sdo.helper.HelperContext;
+import commonj.sdo.helper.XSDHelper;
+
+/**
+ * SDO types model resolver that aggregates the SDO type registration for an SCA contribution
+ */
+public class SDOTypesModelResolver implements ModelResolver {
+    private Contribution contribution;
+    private HelperContext helperContext;
+    private List<SDOTypes> sdoTypes = new ArrayList<SDOTypes>();
+    private ContributionFactory contributionFactory;
+    private XSDFactory xsdFactory;
+    private Monitor monitor;
+
+    public SDOTypesModelResolver(Contribution contribution, ExtensionPointRegistry registry) {
+        super();
+        ModelFactoryExtensionPoint modelFactories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class);
+        this.contributionFactory = modelFactories.getFactory(ContributionFactory.class);
+        this.xsdFactory = modelFactories.getFactory(XSDFactory.class);
+        this.monitor = createMonitor(registry);
+        this.contribution = contribution;
+    }
+
+    private static Monitor createMonitor(ExtensionPointRegistry extensionPoints) {
+        UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
+        if (utilities != null) {
+            MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class);
+            if (monitorFactory != null) {
+                return monitorFactory.createMonitor();
+            }
+        }
+        return null;
+    }
+
+    public void addModel(Object resolved) {
+        if (helperContext == null) {
+            helperContext = SDOUtil.createHelperContext();
+        }
+        SDOTypes types = (SDOTypes)resolved;
+        try {
+            loadSDOTypes(types, contribution.getModelResolver());
+        } catch (ContributionResolveException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        sdoTypes.add(types);
+    }
+
+    public Object removeModel(Object resolved) {
+        SDOTypes types = (SDOTypes)resolved;
+        return sdoTypes.remove(types);
+    }
+
+    public <T> T resolveModel(Class<T> modelClass, T unresolved) {
+        SDOTypes types = (SDOTypes)unresolved;
+        String ns = types.getNamespace();
+        for (SDOTypes t : sdoTypes) {
+            if (t.getNamespace().equals(types.getNamespace())) {
+                try {
+                    loadSDOTypes(types, contribution.getModelResolver());
+                } catch (ContributionResolveException e) {
+                    // TODO Auto-generated catch block
+                    e.printStackTrace();
+                }
+                return (T)t;
+            }
+        }
+        return (T)types;
+    }
+
+    private static void register(Class<?> factoryClass, HelperContext helperContext) throws Exception {
+        Field field = factoryClass.getField("INSTANCE");
+        Object factory = field.get(null);
+        Method method = factory.getClass().getMethod("register", new Class[] {HelperContext.class});
+        method.invoke(factory, new Object[] {helperContext});
+    }
+
+    private void defineFromFactory(SDOTypes importSDO, ModelResolver resolver) throws ContributionResolveException {
+        String factoryName = importSDO.getFactory();
+        if (factoryName != null) {
+            ClassReference reference = new ClassReference(factoryName);
+            ClassReference resolved = resolver.resolveModel(ClassReference.class, reference);
+            if (resolved != null && !resolved.isUnresolved()) {
+                try {
+                    Class<?> factoryClass = resolved.getJavaClass();
+                    // Get the namespace
+                    Field field = factoryClass.getField("NAMESPACE_URI");
+                    importSDO.setNamespace((String)field.get(null));
+                    register(factoryClass, helperContext);
+                    importSDO.setUnresolved(false);
+                } catch (Exception e) {
+                    ContributionResolveException ce = new ContributionResolveException(e);
+                    error("ContributionResolveException", resolver, ce);
+                    //throw ce;
+                }
+            } else {
+                error("FailToResolveClass", resolver, factoryName);
+                //ContributionResolveException loaderException =
+                //new ContributionResolveException("Fail to resolve class: " + factoryName);
+                //throw loaderException;
+            }
+        }
+    }
+
+    private void defineFromXSD(SDOTypes importSDO, ModelResolver resolver) throws ContributionResolveException {
+        String location = importSDO.getSchemaLocation();
+        if (location != null) {
+            try {
+                Artifact artifact = contributionFactory.createArtifact();
+                artifact.setURI(location);
+                artifact = resolver.resolveModel(Artifact.class, artifact);
+                if (artifact.getLocation() != null) {
+                    String wsdlURL = artifact.getLocation();
+                    URLConnection connection = new URL(wsdlURL).openConnection();
+                    connection.setUseCaches(false);
+                    InputStream xsdInputStream = connection.getInputStream();
+                    try {
+                        XSDHelper xsdHelper = helperContext.getXSDHelper();
+                        List<Type> sdoTypes = xsdHelper.define(xsdInputStream, wsdlURL);
+                        for (Type t : sdoTypes) {
+                            importSDO.setNamespace(t.getURI());
+                            break;
+                        }
+                        importSDO.getTypes().addAll(sdoTypes);
+                    } finally {
+                        xsdInputStream.close();
+                    }
+                    importSDO.setUnresolved(false);
+                } else {
+                    error("FailToResolveLocation", resolver, location);
+                    //ContributionResolveException loaderException = new ContributionResolveException("Fail to resolve location: " + location);
+                    //throw loaderException;
+                }
+            } catch (IOException e) {
+                ContributionResolveException ce = new ContributionResolveException(e);
+                error("ContributionResolveException", resolver, ce);
+                //throw ce;
+            }
+        } else {
+            String ns = importSDO.getNamespace();
+            if (ns != null) {
+                XSDefinition xsd = xsdFactory.createXSDefinition();
+                xsd.setUnresolved(true);
+                xsd.setNamespace(ns);
+                xsd = resolver.resolveModel(XSDefinition.class, xsd);
+                if (!xsd.isUnresolved()) {
+                    XSDHelper xsdHelper = helperContext.getXSDHelper();
+                    xsdHelper.define(xsd.getLocation().toString());
+                }
+            }
+        }
+    }
+
+    private void loadSDOTypes(SDOTypes types, ModelResolver resolver) throws ContributionResolveException {
+        synchronized (types) {
+            if (types.isUnresolved()) {
+                defineFromFactory(types, resolver);
+                defineFromXSD(types, resolver);
+                types.setUnresolved(false);
+            }
+        }
+    }
+
+    /**
+     * Report a exception.
+     *
+     * @param problems
+     * @param message
+     * @param model
+     */
+    private void error(String message, Object model, Exception ex) {
+        if (monitor != null) {
+            Problem problem =
+                new ProblemImpl(this.getClass().getName(), "databinding-sdo-validation-messages", Severity.ERROR,
+                                model, message, ex);
+            monitor.problem(problem);
+        }
+    }
+
+    /**
+     * Report a error.
+     *
+     * @param problems
+     * @param message
+     * @param model
+     */
+    private void error(String message, Object model, Object... messageParameters) {
+        if (monitor != null) {
+            Problem problem =
+                new ProblemImpl(this.getClass().getName(), "databinding-sdo-validation-messages", Severity.ERROR,
+                                model, message, (Object[])messageParameters);
+            monitor.problem(problem);
+        }
+    }
+
+}

Modified: tuscany/branches/sca-java-1.x/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java Thu Aug 13 13:14:21 2009
@@ -34,7 +34,6 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
@@ -47,6 +46,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 /**
  * A SCA Definitions Document processor.

Modified: tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java Thu Aug 13 13:14:21 2009
@@ -78,6 +78,8 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.MonitorFactory;
 import org.apache.tuscany.sca.monitor.Problem;
+import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 import org.apache.tuscany.sca.workspace.Workspace;
 import org.apache.tuscany.sca.workspace.WorkspaceFactory;
 import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder;
@@ -413,6 +415,19 @@
             public List<Problem> getProblems() {
                 return null;
             }
+            public Problem createProblem(String sourceClassName, String bundleName,
+        			Severity severity, Object problemObject, String messageId,
+        			Exception cause) {
+        		return new ProblemImpl(sourceClassName, bundleName, severity,
+        				problemObject, messageId, cause);
+        	}
+
+        	public Problem createProblem(String sourceClassName, String bundleName,
+        			Severity severity, Object problemObject, String messageId,
+        			Object... messageParams) {
+        		return new ProblemImpl(sourceClassName, bundleName, severity,
+        				problemObject, messageId, messageParams);
+        	}             
         };
         
         StringBuffer sb = new StringBuffer();

Modified: tuscany/branches/sca-java-1.x/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentProcessor.java Thu Aug 13 13:14:21 2009
@@ -37,7 +37,6 @@
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamReader;
 
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
@@ -55,6 +54,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 /**
  * BPEL document processor responsible for reading a BPEL file and producing necessary model info about it

Modified: tuscany/branches/sca-java-1.x/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELImplementationProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELImplementationProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELImplementationProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELImplementationProcessor.java Thu Aug 13 13:14:21 2009
@@ -37,7 +37,6 @@
 import org.apache.tuscany.sca.assembly.Property;
 import org.apache.tuscany.sca.assembly.Reference;
 import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor;
@@ -56,6 +55,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 /**
  * Implements a StAX artifact processor for BPEL implementations.

Modified: tuscany/branches/sca-java-1.x/modules/implementation-ejb/src/main/java/org/apache/tuscany/sca/implementation/ejb/xml/EJBImplementationProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-ejb/src/main/java/org/apache/tuscany/sca/implementation/ejb/xml/EJBImplementationProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/implementation-ejb/src/main/java/org/apache/tuscany/sca/implementation/ejb/xml/EJBImplementationProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/implementation-ejb/src/main/java/org/apache/tuscany/sca/implementation/ejb/xml/EJBImplementationProcessor.java Thu Aug 13 13:14:21 2009
@@ -30,7 +30,6 @@
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
 import org.apache.tuscany.sca.assembly.ComponentType;
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.jee.EjbInfo;
@@ -57,6 +56,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 
 /**

Modified: tuscany/branches/sca-java-1.x/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java Thu Aug 13 13:14:21 2009
@@ -42,7 +42,6 @@
 import org.apache.tuscany.sca.assembly.Property;
 import org.apache.tuscany.sca.assembly.Reference;
 import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.assembly.xml.ConfiguredOperationProcessor;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.assembly.xml.PolicyAttachPointProcessor;
@@ -64,6 +63,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
 import org.apache.tuscany.sca.policy.PolicyFactory;
 

Modified: tuscany/branches/sca-java-1.x/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/builder/impl/CalculateBindingURITestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/builder/impl/CalculateBindingURITestCase.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/builder/impl/CalculateBindingURITestCase.java (original)
+++ tuscany/branches/sca-java-1.x/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/builder/impl/CalculateBindingURITestCase.java Thu Aug 13 13:14:21 2009
@@ -45,6 +45,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 /**
  *
@@ -81,6 +82,20 @@
             public List<Problem> getProblems() {
                 return null;
             }
+            
+            public Problem createProblem(String sourceClassName, String bundleName,
+        			Severity severity, Object problemObject, String messageId,
+        			Exception cause) {
+        		return new ProblemImpl(sourceClassName, bundleName, severity,
+        				problemObject, messageId, cause);
+        	}
+
+        	public Problem createProblem(String sourceClassName, String bundleName,
+        			Severity severity, Object problemObject, String messageId,
+        			Object... messageParams) {
+        		return new ProblemImpl(sourceClassName, bundleName, severity,
+        				problemObject, messageId, messageParams);
+        	}             
         };
         configurationBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, null, null, monitor);
         Binding defaultBinding = new TestBindingImpl();

Modified: tuscany/branches/sca-java-1.x/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementationProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementationProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementationProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementationProcessor.java Thu Aug 13 13:14:21 2009
@@ -42,7 +42,6 @@
 import org.apache.tuscany.sca.assembly.Property;
 import org.apache.tuscany.sca.assembly.Reference;
 import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.osgi.BundleReference;
@@ -62,6 +61,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 import org.osgi.framework.Bundle;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;

Modified: tuscany/branches/sca-java-1.x/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationProcessor.java Thu Aug 13 13:14:21 2009
@@ -28,7 +28,6 @@
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.Artifact;
 import org.apache.tuscany.sca.contribution.ContributionFactory;
@@ -43,6 +42,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 
 /**

Modified: tuscany/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/xml/SpringImplementationProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/xml/SpringImplementationProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/xml/SpringImplementationProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/xml/SpringImplementationProcessor.java Thu Aug 13 13:14:21 2009
@@ -1,234 +1,234 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.sca.implementation.spring.xml;
-
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.assembly.ComponentType;
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.assembly.xml.PolicyAttachPointProcessor;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-import org.apache.tuscany.sca.implementation.spring.SpringImplementation;
-import org.apache.tuscany.sca.implementation.spring.introspect.SpringXMLComponentTypeLoader;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.Problem;
-import org.apache.tuscany.sca.monitor.Problem.Severity;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-
-/**
- * SpringArtifactProcessor is responsible for processing the XML of an <implementation.spring.../>
- * element in an SCA SCDL file.
- *
- * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $
- */
-public class SpringImplementationProcessor implements StAXArtifactProcessor<SpringImplementation> {
-
-    private static final String LOCATION = "location";
-    private static final String IMPLEMENTATION_SPRING = "implementation.spring";
-    private static final QName IMPLEMENTATION_SPRING_QNAME = new QName(Constants.SCA10_NS, IMPLEMENTATION_SPRING);
-    private static final String MSG_LOCATION_MISSING = "Reading implementation.spring - location attribute missing";
-
-    private AssemblyFactory assemblyFactory;
-    private JavaInterfaceFactory javaFactory;
-    private PolicyFactory policyFactory;
-    private PolicyAttachPointProcessor policyProcessor;
-    private Monitor monitor;
-
-    private ModelFactoryExtensionPoint factories;
-
-    public SpringImplementationProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
-        this.factories = modelFactories;
-        this.assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
-        this.javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
-        this.policyFactory = modelFactories.getFactory(PolicyFactory.class);
-        this.policyProcessor = new PolicyAttachPointProcessor(policyFactory);
-        this.monitor = monitor;
-    }
-
-    /**
-     * Report a exception.
-     *
-     * @param problems
-     * @param message
-     * @param model
-     */
-    private void error(String message, Object model, Exception ex) {
-    	 if (monitor != null) {
-	        Problem problem = new ProblemImpl(this.getClass().getName(), "impl-spring-validation-messages", Severity.ERROR, model, message, ex);
-	        monitor.problem(problem);
-    	 }
-    }
-
-    /**
-     * Report a error.
-     *
-     * @param problems
-     * @param message
-     * @param model
-     */
-    private void error(String message, Object model, Object... messageParameters) {
-    	 if (monitor != null) {
-	        Problem problem = new ProblemImpl(this.getClass().getName(), "impl-spring-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters);
-	        monitor.problem(problem);
-    	 }
-    }
-
-    /*
-     * Read the XML and parse out the attributes.
-     *
-     * <implementation.spring.../> has a single required attribute:
-     * "location" - which is the target URI of of an archive file or a directory that contains the Spring
-     * application context files.
-     * If the resource identified by the location attribute is an archive file, then the file
-     * META-INF/MANIFEST.MF is read from the archive.
-     * If the location URI identifies a directory, then META-INF/MANIFEST.MF must exist
-     * underneath that directory.
-     * If the manifest file contains a header "Spring-Context" of the format:
-     *    Spring-Context ::= path ( ';' path )*
-     *
-     * Where path is a relative path with respect to the location URI, then the set of paths
-     * specified in the header identify the context configuration files.
-     * If there is no MANIFEST.MF file or no Spring-Context header within that file,
-     * then the default behaviour is to build an application context using all the *.xml files
-     * in the METAINF/spring directory.
-     */
-    public SpringImplementation read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
-
-        // Create the Spring implementation
-        SpringImplementation springImplementation = null;
-
-        // Read the location attribute for the spring implementation
-        String springLocation = reader.getAttributeValue(null, LOCATION);
-        if (springLocation != null) {
-        	springImplementation = new SpringImplementation();
-        	springImplementation.setLocation(springLocation);
-        	springImplementation.setUnresolved(true);
-            processComponentType(springImplementation);
-        } else {
-        	error("LocationAttributeMissing", reader);
-            //throw new ContributionReadException(MSG_LOCATION_MISSING);
-        }
-
-        // Read policies
-        policyProcessor.readPolicies(springImplementation, reader);
-
-        // Skip to end element
-        while (reader.hasNext()) {
-            if (reader.next() == END_ELEMENT && IMPLEMENTATION_SPRING_QNAME.equals(reader.getName())) {
-                break;
-            }
-        } // end while
-
-        return springImplementation;
-    } // end read
-
-    /*
-     * Handles the component type for the Spring implementation
-     * @param springImplementation - a Spring implementation.  The component type information
-     * is created for this implementation
-     *
-     */
-    private void processComponentType(SpringImplementation springImplementation) {
-
-        // Create a ComponentType and mark it unresolved
-        ComponentType componentType = assemblyFactory.createComponentType();
-        componentType.setUnresolved(true);
-        springImplementation.setComponentType(componentType);
-    } // end processComponentType
-
-    /*
-     * Write out the XML representation of the Spring implementation
-     * <implementation.spring location="..." />
-     */
-    public void write(SpringImplementation springImplementation, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
-
-        // Write <implementation.spring>
-        policyProcessor.writePolicyPrefixes(springImplementation, writer);
-        writer.writeStartElement(Constants.SCA10_NS, IMPLEMENTATION_SPRING);
-        policyProcessor.writePolicyAttributes(springImplementation, writer);
-
-        if (springImplementation.getLocation() != null) {
-            writer.writeAttribute(LOCATION, springImplementation.getLocation());
-        }
-
-        writer.writeEndElement();
-
-    } // end write
-
-    /**
-     * Resolves the Spring implementation - loads the Spring application-context XML and
-     * derives the spring implementation componentType from it
-     */
-    public void resolve(SpringImplementation springImplementation, ModelResolver resolver)
-        throws ContributionResolveException {
-
-    	if (springImplementation == null)
-    		return;
-
-        /* Load the Spring component type by reading the Spring application context */
-        SpringXMLComponentTypeLoader springLoader =
-            new SpringXMLComponentTypeLoader(factories, assemblyFactory, javaFactory, policyFactory);
-        try {
-            // Load the Spring Implementation information from its application context file...
-            springLoader.load(springImplementation, resolver);
-        } catch (ContributionReadException e) {
-        	ContributionResolveException ce = new ContributionResolveException(e);
-        	error("ContributionResolveException", resolver, ce);
-            throw ce;
-        }
-
-        ComponentType ct = springImplementation.getComponentType();
-        if (ct.isUnresolved()) {
-            // If the introspection fails to resolve, try to find a side file...
-            ComponentType componentType = resolver.resolveModel(ComponentType.class, ct);
-            if (componentType.isUnresolved()) {
-            	error("UnableToResolveComponentType", resolver);
-                //throw new ContributionResolveException("SpringArtifactProcessor: unable to resolve componentType for Spring component");
-            } else {
-                springImplementation.setComponentType(componentType);
-                springImplementation.setUnresolved(false);
-           }
-
-        } // end if
-
-    } // end method resolve
-
-    public QName getArtifactType() {
-        return IMPLEMENTATION_SPRING_QNAME;
-    }
-
-    public Class<SpringImplementation> getModelType() {
-        return SpringImplementation.class;
-    }
-
-} // end class SpringArtifactProcessor
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.sca.implementation.spring.xml;
+
+import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.sca.assembly.AssemblyFactory;
+import org.apache.tuscany.sca.assembly.ComponentType;
+import org.apache.tuscany.sca.assembly.xml.Constants;
+import org.apache.tuscany.sca.assembly.xml.PolicyAttachPointProcessor;
+import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
+import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
+import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+import org.apache.tuscany.sca.implementation.spring.SpringImplementation;
+import org.apache.tuscany.sca.implementation.spring.introspect.SpringXMLComponentTypeLoader;
+import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
+import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.monitor.Problem;
+import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
+import org.apache.tuscany.sca.policy.PolicyFactory;
+
+/**
+ * SpringArtifactProcessor is responsible for processing the XML of an <implementation.spring.../>
+ * element in an SCA SCDL file.
+ *
+ * @version $Rev: 511195 $ $Date: 2007-02-24 02:29:46 +0000 (Sat, 24 Feb 2007) $
+ */
+public class SpringImplementationProcessor implements StAXArtifactProcessor<SpringImplementation> {
+
+    private static final String LOCATION = "location";
+    private static final String IMPLEMENTATION_SPRING = "implementation.spring";
+    private static final QName IMPLEMENTATION_SPRING_QNAME = new QName(Constants.SCA10_NS, IMPLEMENTATION_SPRING);
+    private static final String MSG_LOCATION_MISSING = "Reading implementation.spring - location attribute missing";
+
+    private AssemblyFactory assemblyFactory;
+    private JavaInterfaceFactory javaFactory;
+    private PolicyFactory policyFactory;
+    private PolicyAttachPointProcessor policyProcessor;
+    private Monitor monitor;
+
+    private ModelFactoryExtensionPoint factories;
+
+    public SpringImplementationProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+        this.factories = modelFactories;
+        this.assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
+        this.javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
+        this.policyFactory = modelFactories.getFactory(PolicyFactory.class);
+        this.policyProcessor = new PolicyAttachPointProcessor(policyFactory);
+        this.monitor = monitor;
+    }
+
+    /**
+     * Report a exception.
+     *
+     * @param problems
+     * @param message
+     * @param model
+     */
+    private void error(String message, Object model, Exception ex) {
+    	 if (monitor != null) {
+	        Problem problem = new ProblemImpl(this.getClass().getName(), "impl-spring-validation-messages", Severity.ERROR, model, message, ex);
+	        monitor.problem(problem);
+    	 }
+    }
+
+    /**
+     * Report a error.
+     *
+     * @param problems
+     * @param message
+     * @param model
+     */
+    private void error(String message, Object model, Object... messageParameters) {
+    	 if (monitor != null) {
+	        Problem problem = new ProblemImpl(this.getClass().getName(), "impl-spring-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters);
+	        monitor.problem(problem);
+    	 }
+    }
+
+    /*
+     * Read the XML and parse out the attributes.
+     *
+     * <implementation.spring.../> has a single required attribute:
+     * "location" - which is the target URI of of an archive file or a directory that contains the Spring
+     * application context files.
+     * If the resource identified by the location attribute is an archive file, then the file
+     * META-INF/MANIFEST.MF is read from the archive.
+     * If the location URI identifies a directory, then META-INF/MANIFEST.MF must exist
+     * underneath that directory.
+     * If the manifest file contains a header "Spring-Context" of the format:
+     *    Spring-Context ::= path ( ';' path )*
+     *
+     * Where path is a relative path with respect to the location URI, then the set of paths
+     * specified in the header identify the context configuration files.
+     * If there is no MANIFEST.MF file or no Spring-Context header within that file,
+     * then the default behaviour is to build an application context using all the *.xml files
+     * in the METAINF/spring directory.
+     */
+    public SpringImplementation read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
+
+        // Create the Spring implementation
+        SpringImplementation springImplementation = null;
+
+        // Read the location attribute for the spring implementation
+        String springLocation = reader.getAttributeValue(null, LOCATION);
+        if (springLocation != null) {
+        	springImplementation = new SpringImplementation();
+        	springImplementation.setLocation(springLocation);
+        	springImplementation.setUnresolved(true);
+            processComponentType(springImplementation);
+        } else {
+        	error("LocationAttributeMissing", reader);
+            //throw new ContributionReadException(MSG_LOCATION_MISSING);
+        }
+
+        // Read policies
+        policyProcessor.readPolicies(springImplementation, reader);
+
+        // Skip to end element
+        while (reader.hasNext()) {
+            if (reader.next() == END_ELEMENT && IMPLEMENTATION_SPRING_QNAME.equals(reader.getName())) {
+                break;
+            }
+        } // end while
+
+        return springImplementation;
+    } // end read
+
+    /*
+     * Handles the component type for the Spring implementation
+     * @param springImplementation - a Spring implementation.  The component type information
+     * is created for this implementation
+     *
+     */
+    private void processComponentType(SpringImplementation springImplementation) {
+
+        // Create a ComponentType and mark it unresolved
+        ComponentType componentType = assemblyFactory.createComponentType();
+        componentType.setUnresolved(true);
+        springImplementation.setComponentType(componentType);
+    } // end processComponentType
+
+    /*
+     * Write out the XML representation of the Spring implementation
+     * <implementation.spring location="..." />
+     */
+    public void write(SpringImplementation springImplementation, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
+
+        // Write <implementation.spring>
+        policyProcessor.writePolicyPrefixes(springImplementation, writer);
+        writer.writeStartElement(Constants.SCA10_NS, IMPLEMENTATION_SPRING);
+        policyProcessor.writePolicyAttributes(springImplementation, writer);
+
+        if (springImplementation.getLocation() != null) {
+            writer.writeAttribute(LOCATION, springImplementation.getLocation());
+        }
+
+        writer.writeEndElement();
+
+    } // end write
+
+    /**
+     * Resolves the Spring implementation - loads the Spring application-context XML and
+     * derives the spring implementation componentType from it
+     */
+    public void resolve(SpringImplementation springImplementation, ModelResolver resolver)
+        throws ContributionResolveException {
+
+    	if (springImplementation == null)
+    		return;
+
+        /* Load the Spring component type by reading the Spring application context */
+        SpringXMLComponentTypeLoader springLoader =
+            new SpringXMLComponentTypeLoader(factories, assemblyFactory, javaFactory, policyFactory);
+        try {
+            // Load the Spring Implementation information from its application context file...
+            springLoader.load(springImplementation, resolver);
+        } catch (ContributionReadException e) {
+        	ContributionResolveException ce = new ContributionResolveException(e);
+        	error("ContributionResolveException", resolver, ce);
+            throw ce;
+        }
+
+        ComponentType ct = springImplementation.getComponentType();
+        if (ct.isUnresolved()) {
+            // If the introspection fails to resolve, try to find a side file...
+            ComponentType componentType = resolver.resolveModel(ComponentType.class, ct);
+            if (componentType.isUnresolved()) {
+            	error("UnableToResolveComponentType", resolver);
+                //throw new ContributionResolveException("SpringArtifactProcessor: unable to resolve componentType for Spring component");
+            } else {
+                springImplementation.setComponentType(componentType);
+                springImplementation.setUnresolved(false);
+           }
+
+        } // end if
+
+    } // end method resolve
+
+    public QName getArtifactType() {
+        return IMPLEMENTATION_SPRING_QNAME;
+    }
+
+    public Class<SpringImplementation> getModelType() {
+        return SpringImplementation.class;
+    }
+
+} // end class SpringArtifactProcessor

Modified: tuscany/branches/sca-java-1.x/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java Thu Aug 13 13:14:21 2009
@@ -29,7 +29,6 @@
 import javax.xml.stream.XMLStreamWriter;
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.Artifact;
 import org.apache.tuscany.sca.contribution.ContributionFactory;
@@ -42,6 +41,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 
 /**

Modified: tuscany/branches/sca-java-1.x/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java Thu Aug 13 13:14:21 2009
@@ -26,7 +26,6 @@
 import javax.xml.stream.XMLStreamWriter;
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.Artifact;
 import org.apache.tuscany.sca.contribution.ContributionFactory;
@@ -42,6 +41,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 /**
  * Processor for the XQuery implementation type artifact

Modified: tuscany/branches/sca-java-1.x/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java Thu Aug 13 13:14:21 2009
@@ -28,7 +28,6 @@
 
 import org.apache.tuscany.sca.assembly.Extension;
 import org.apache.tuscany.sca.assembly.ExtensionFactory;
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
@@ -45,6 +44,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 /**
  *

Modified: tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java Thu Aug 13 13:14:21 2009
@@ -33,7 +33,6 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
@@ -44,6 +43,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 import org.apache.tuscany.sca.xsd.XSDefinition;
 import org.apache.tuscany.sca.xsd.XSDFactory;
 

Modified: tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java Thu Aug 13 13:14:21 2009
@@ -30,7 +30,6 @@
 
 import org.apache.tuscany.sca.assembly.Extension;
 import org.apache.tuscany.sca.assembly.ExtensionFactory;
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
@@ -50,6 +49,8 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
+
 import com.ibm.wsdl.OperationImpl;
 
 /**

Modified: tuscany/branches/sca-java-1.x/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/Monitor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/Monitor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/Monitor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/Monitor.java Thu Aug 13 13:14:21 2009
@@ -20,25 +20,143 @@
 package org.apache.tuscany.sca.monitor;
 
 import java.util.List;
+import org.apache.tuscany.sca.monitor.Problem.Severity;
 
 /**
  * A monitor for the watching for validation problems
  *
  * @version $Rev$ $Date$
  */
-public interface Monitor {
+public abstract class Monitor {
     /**
      * Reports a build problem.
      * 
      * @param problem
      */
-    void problem(Problem problem);
+	public abstract void problem(Problem problem);
     
     /** 
      * Returns a list of reported problems. 
      * 
      * @return the list of problems. The list may be empty
      */
-    List<Problem> getProblems();
+	public abstract List<Problem> getProblems();
+	
+    /**
+     * Create a new problem.
+     * 
+     * @param sourceClassName   the class name reporting the problem
+     * @param bundleName        the name of the message bundle to use
+     * @param severity          the severity of the problem
+     * @param problemObject     the model object for which the problem is being reported
+     * @param messageId         the id of the problem message
+     * @param cause             the exception which caused the problem
+     * @return
+     */
+    public abstract Problem createProblem(String sourceClassName,
+                                          String bundleName,
+                                          Severity severity,
+                                          Object problemObject,
+                                          String messageId,
+                                          Exception cause);
+
+    /**
+     * Create a new problem.
+     *  
+     * @param sourceClassName   the class name reporting the problem
+     * @param bundleName        the name of the message bundle to use
+     * @param severity          the severity of the problem
+     * @param problemObject     the model object for which the problem is being reported
+     * @param messageId         the id of the problem message
+     * @param messageParams     the parameters of the problem message
+     * @return
+     */
+    public abstract Problem createProblem(String sourceClassName,
+                                   String bundleName,
+                                   Severity severity,
+                                   Object problemObject,
+                                   String messageId,
+                                   Object... messageParams);	
+    
+    /**
+     * A utility function for raising a warning. It creates the problem and 
+     * adds it to the monitor
+     * 
+     * @param monitor
+     * @param reportingObject
+     * @param messageBundle
+     * @param messageId
+     * @param messageParameters
+     */
+    public static void warning (Monitor monitor, 
+                                Object reportingObject,
+                                String messageBundle,
+                                String messageId, 
+                                String... messageParameters){
+        if (monitor != null) {
+            Problem problem =
+                monitor.createProblem(reportingObject.getClass().getName(),
+                                      messageBundle,
+                                      Severity.WARNING,
+                                      null,
+                                      messageId,
+                                      (Object[])messageParameters);
+            monitor.problem(problem);
+        }
+    }
+   
+    /**
+     * A utility function for raising an error. It creates the problem and 
+     * adds it to the monitor
+     * 
+     * @param monitor
+     * @param reportingObject
+     * @param messageBundle
+     * @param messageId
+     * @param messageParameters
+     */
+    public static void error (Monitor monitor, 
+                              Object reportingObject,
+                              String messageBundle,
+                              String messageId, 
+                              String... messageParameters){
+        if (monitor != null) {
+            Problem problem =
+                monitor.createProblem(reportingObject.getClass().getName(),
+                                      messageBundle,
+                                      Severity.ERROR,
+                                      null,
+                                      messageId,
+                                      (Object[])messageParameters);
+            monitor.problem(problem);
+        }
+    }
+    
+    /**
+     * A utility function for raising an error. It creates the problem and 
+     * adds it to the monitor
+     * 
+     * @param monitor
+     * @param reportingObject
+     * @param messageBundle
+     * @param messageId
+     * @param exception
+     */
+    public static void error (Monitor monitor, 
+                              Object reportingObject,
+                              String messageBundle,
+                              String messageId, 
+                              Exception cause){
+        if (monitor != null) {
+            Problem problem =
+                monitor.createProblem(reportingObject.getClass().getName(),
+                                      messageBundle,
+                                      Severity.ERROR,
+                                      null,
+                                      messageId,
+                                      cause);
+            monitor.problem(problem);
+        }
+    }  
     
 }

Modified: tuscany/branches/sca-java-1.x/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultMonitorImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultMonitorImpl.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultMonitorImpl.java (original)
+++ tuscany/branches/sca-java-1.x/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultMonitorImpl.java Thu Aug 13 13:14:21 2009
@@ -34,7 +34,7 @@
  *
  * @version $Rev$ $Date$
  */
-public class DefaultMonitorImpl implements Monitor {
+public class DefaultMonitorImpl extends Monitor {
     private static final Logger logger = Logger.getLogger(DefaultMonitorImpl.class.getName());
     
     // Cache all the problem reported to monitor for further analysis
@@ -76,6 +76,20 @@
         return problemCache;
     }
     
+    public Problem createProblem(String sourceClassName, String bundleName,
+			Severity severity, Object problemObject, String messageId,
+			Exception cause) {
+		return new ProblemImpl(sourceClassName, bundleName, severity,
+				problemObject, messageId, cause);
+	}
+
+	public Problem createProblem(String sourceClassName, String bundleName,
+			Severity severity, Object problemObject, String messageId,
+			Object... messageParams) {
+		return new ProblemImpl(sourceClassName, bundleName, severity,
+				problemObject, messageId, messageParams);
+	}    
+    
     public Problem getLastLoggedProblem(){
         return problemCache.get(problemCache.size() - 1);
     }
@@ -98,5 +112,5 @@
         }
         
         return null;
-    }
+    }    
 }

Added: tuscany/branches/sca-java-1.x/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/ProblemImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/ProblemImpl.java?rev=803875&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/ProblemImpl.java (added)
+++ tuscany/branches/sca-java-1.x/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/ProblemImpl.java Thu Aug 13 13:14:21 2009
@@ -0,0 +1,132 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.sca.monitor.impl;
+
+import java.util.logging.Formatter;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+import java.util.logging.Logger;
+import java.util.logging.SimpleFormatter;
+
+import org.apache.tuscany.sca.monitor.Problem;
+
+/**
+ * Reports a composite assembly problem. 
+ *
+ * @version $Rev$ $Date$
+ */
+public class ProblemImpl implements Problem {
+
+    private String sourceClassName;
+    private String bundleName;
+    private Severity severity;
+    private Object problemObject;
+    private String messageId;
+    private Object[] messageParams;
+    private Exception cause;
+
+    /**
+     * Construct a new problem
+     * 
+     * @param sourceClassName   the class name reporting the problem
+     * @param bundleName        the name of the message bundle to use
+     * @param severity          the severity of the problem
+     * @param problemObject     the model object for which the problem is being reported
+     * @param messageId         the id of the problem message
+     * @param messageParams     the parameters of the problem message
+     */
+    public ProblemImpl(String sourceClassName, String bundleName, Severity severity, Object problemObject, String messageId, Object... messageParams ) {
+        this.sourceClassName = sourceClassName;
+        this.bundleName = bundleName;
+        this.severity = severity;
+        this.problemObject = problemObject;
+        this.messageId = messageId;
+        this.messageParams = messageParams;
+    }
+    
+    /**
+     * Construct a new problem
+     * 
+     * @param sourceClassName   the class name reporting the problem
+     * @param bundleName        the name of the message bundle to use
+     * @param severity          the severity of the problem
+     * @param problemObject     the model object for which the problem is being reported
+     * @param messageId         the id of the problem message
+     * @param cause             the exception which caused the problem
+     */
+    public ProblemImpl(String sourceClassName, String bundleName, Severity severity, Object problemObject, String messageId, Exception cause) {
+        this.sourceClassName = sourceClassName;
+        this.bundleName = bundleName;   
+        this.severity = severity;        
+        this.problemObject = problemObject;
+        this.messageId = messageId;
+        this.cause = cause;
+    }    
+
+    public String getSourceClassName() {
+        return sourceClassName;
+    }
+    
+    public String getBundleName() {
+        return bundleName;
+    }
+    
+    public Severity getSeverity() {
+        return severity;
+    }
+    
+    public Object getProblemObject() {
+        return problemObject;
+    }
+    
+    public String getMessageId() {
+        return messageId;
+    }
+
+    public Object[] getMessageParams() {
+        return messageParams;
+    }
+    
+    public Exception getCause() {
+        return cause;
+    }    
+
+    @Override
+    public String toString() {
+        Logger logger = Logger.getLogger(sourceClassName, bundleName);
+        
+        LogRecord record = new LogRecord(Level.INFO, messageId);
+        
+        if (cause == null){
+            record.setParameters(messageParams);
+            
+        } else {
+            Object[] params = new String[1];
+            params[0] = cause.toString();
+            record.setParameters(params);
+        }
+        record.setResourceBundle(logger.getResourceBundle());
+        record.setSourceClassName(sourceClassName);
+ 
+        Formatter formatter = new SimpleFormatter();
+        
+        return formatter.formatMessage(record);
+    }
+}

Propchange: tuscany/branches/sca-java-1.x/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/ProblemImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/branches/sca-java-1.x/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/ProblemImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/authentication/AuthenticationConfigurationPolicyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/authentication/AuthenticationConfigurationPolicyProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/authentication/AuthenticationConfigurationPolicyProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/authentication/AuthenticationConfigurationPolicyProcessor.java Thu Aug 13 13:14:21 2009
@@ -29,7 +29,6 @@
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
@@ -41,6 +40,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 /**
  *  <sca:policySet name="widgetBindingAuthenticationPolicySet"

Modified: tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/confidentiality/ConfidentialityPolicyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/confidentiality/ConfidentialityPolicyProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/confidentiality/ConfidentialityPolicyProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/confidentiality/ConfidentialityPolicyProcessor.java Thu Aug 13 13:14:21 2009
@@ -27,7 +27,6 @@
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
@@ -38,6 +37,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 public class ConfidentialityPolicyProcessor implements StAXArtifactProcessor<ConfidentialityPolicy> {
     private static final QName KEY_STORE_QNAME = new QName(Constants.SCA10_TUSCANY_NS, "keyStore");

Modified: tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicyProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicyProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicyProcessor.java Thu Aug 13 13:14:21 2009
@@ -27,7 +27,6 @@
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
@@ -38,6 +37,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 
 /**

Modified: tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/DefaultLDAPSecurityExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/DefaultLDAPSecurityExtensionPoint.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/DefaultLDAPSecurityExtensionPoint.java (original)
+++ tuscany/branches/sca-java-1.x/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/DefaultLDAPSecurityExtensionPoint.java Thu Aug 13 13:14:21 2009
@@ -24,7 +24,6 @@
 import java.util.List;
 import java.util.Set;
 
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
@@ -33,6 +32,7 @@
 import org.apache.tuscany.sca.monitor.MonitorFactory;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 
 /**

Modified: tuscany/branches/sca-java-1.x/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authorization/AuthorizationPolicyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authorization/AuthorizationPolicyProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authorization/AuthorizationPolicyProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authorization/AuthorizationPolicyProcessor.java Thu Aug 13 13:14:21 2009
@@ -28,7 +28,6 @@
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
@@ -38,6 +37,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 /**
  *

Modified: tuscany/branches/sca-java-1.x/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java Thu Aug 13 13:14:21 2009
@@ -26,7 +26,6 @@
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
@@ -36,6 +35,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 /**
  *

Modified: tuscany/branches/sca-java-1.x/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java?rev=803875&r1=803874&r2=803875&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java Thu Aug 13 13:14:21 2009
@@ -26,7 +26,6 @@
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
@@ -38,6 +37,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
 
 /**
  *