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 2008/04/18 18:51:38 UTC

svn commit: r649607 - in /incubator/tuscany/java/sca: itest/ itest/domain/ itest/domain/src/test/java/org/apache/tuscany/sca/itest/domain/ itest/validation/ itest/validation/src/main/resources/ itest/validation/src/main/resources/DuplicateComponentName...

Author: slaws
Date: Fri Apr 18 09:51:20 2008
New Revision: 649607

URL: http://svn.apache.org/viewvc?rev=649607&view=rev
Log:
Integrate the validation monitor back into the rest of the code. This is a light touch integration. Still need to move messages into resource bundles. Local monitors are still created in some places. If a monitor implementation is not found then a warning is raised but execution continues so that I don't have to change the dependencies of the many tests that now don't pull in a monitor but also don't raise any warnings. 

Added:
    incubator/tuscany/java/sca/itest/validation/src/main/resources/DuplicateComponentName/
    incubator/tuscany/java/sca/itest/validation/src/main/resources/DuplicateComponentName/Calculator.composite   (with props)
    incubator/tuscany/java/sca/itest/validation/src/main/resources/XsdValidation/
    incubator/tuscany/java/sca/itest/validation/src/main/resources/XsdValidation/Calculator.composite
      - copied unchanged from r648990, incubator/tuscany/java/sca/itest/validation/src/main/resources/Calculator.composite
    incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/DuplicateComponentNameTestCase.java   (with props)
    incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/XSDValidationTestCase.java
      - copied, changed from r648990, incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/CalculatorTestCase.java
    incubator/tuscany/java/sca/modules/assembly/src/main/resources/assembly-validation-messages_en.properties   (with props)
    incubator/tuscany/java/sca/modules/monitor-logging/src/main/resources/META-INF/services/org.apache.tuscany.sca.monitor.MonitorFactory
      - copied, changed from r649466, incubator/tuscany/java/sca/modules/monitor-logging/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.monitor.MonitorFactory
    incubator/tuscany/java/sca/modules/workspace-impl/src/main/resources/workspace-validation-messages_en.properties   (with props)
Removed:
    incubator/tuscany/java/sca/itest/validation/src/main/resources/Calculator.composite
    incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/CalculatorTestCase.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilderMonitor.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/Problem.java
    incubator/tuscany/java/sca/modules/monitor-logging/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.monitor.MonitorFactory
    incubator/tuscany/java/sca/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilderMonitor.java
Modified:
    incubator/tuscany/java/sca/itest/domain/pom.xml
    incubator/tuscany/java/sca/itest/domain/src/test/java/org/apache/tuscany/sca/itest/domain/ContributionSPIsTestCase.java
    incubator/tuscany/java/sca/itest/pom.xml
    incubator/tuscany/java/sca/itest/validation/pom.xml
    incubator/tuscany/java/sca/modules/assembly/pom.xml
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeCloneBuilderImpl.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeConfigurationBuilderImpl.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeIncludeBuilderImpl.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeWireBuilderImpl.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/DomainWireBuilderImpl.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ProblemImpl.java
    incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/builder/impl/CalculateBindingURITestCase.java
    incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java
    incubator/tuscany/java/sca/modules/host-embedded/pom.xml
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
    incubator/tuscany/java/sca/modules/monitor-logging/pom.xml
    incubator/tuscany/java/sca/modules/monitor-logging/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultLoggingMonitorImpl.java
    incubator/tuscany/java/sca/modules/monitor-logging/src/main/java/org/apache/tuscany/sca/monitor/impl/MonitorFactoryImpl.java
    incubator/tuscany/java/sca/modules/monitor/pom.xml
    incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/SCANode2Factory.java
    incubator/tuscany/java/sca/modules/pom.xml
    incubator/tuscany/java/sca/modules/workspace-admin/pom.xml
    incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionCollectionImpl.java
    incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/DeployableCompositeCollectionImpl.java
    incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java

Modified: incubator/tuscany/java/sca/itest/domain/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/domain/pom.xml?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/domain/pom.xml (original)
+++ incubator/tuscany/java/sca/itest/domain/pom.xml Fri Apr 18 09:51:20 2008
@@ -29,6 +29,7 @@
     <name>Apache Tuscany SCA Domain Integration Tests</name>
 
     <dependencies>
+            
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-node2-api</artifactId>
@@ -74,6 +75,13 @@
             <version>3.2.1</version>
             <scope>runtime</scope>
         </dependency> 
+        
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-monitor-logging</artifactId>
+            <version>2.0-incubating-SNAPSHOT</version>
+            <scope>runtime</scope>            
+        </dependency>        
         
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>

Modified: incubator/tuscany/java/sca/itest/domain/src/test/java/org/apache/tuscany/sca/itest/domain/ContributionSPIsTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/domain/src/test/java/org/apache/tuscany/sca/itest/domain/ContributionSPIsTestCase.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/domain/src/test/java/org/apache/tuscany/sca/itest/domain/ContributionSPIsTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/domain/src/test/java/org/apache/tuscany/sca/itest/domain/ContributionSPIsTestCase.java Fri Apr 18 09:51:20 2008
@@ -41,9 +41,6 @@
 import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.assembly.SCABindingFactory;
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
-import org.apache.tuscany.sca.assembly.builder.CompositeBuilderMonitor;
-import org.apache.tuscany.sca.assembly.builder.Problem;
-import org.apache.tuscany.sca.assembly.builder.Problem.Severity;
 import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl;
 import org.apache.tuscany.sca.assembly.builder.impl.CompositeConfigurationBuilderImpl;
 import org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor;
@@ -73,6 +70,9 @@
 import org.apache.tuscany.sca.host.embedded.impl.ReallySmallRuntime;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl;
+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.node.SCAClient;
 import org.apache.tuscany.sca.node.SCANode2;
 import org.apache.tuscany.sca.node.SCANode2Factory;
@@ -81,7 +81,6 @@
 import org.apache.tuscany.sca.policy.PolicyFactory;
 import org.apache.tuscany.sca.workspace.Workspace;
 import org.apache.tuscany.sca.workspace.WorkspaceFactory;
-import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilderMonitor;
 import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl;
 import org.apache.tuscany.sca.workspace.processor.impl.ContributionContentProcessor;
 import org.apache.tuscany.sca.workspace.processor.impl.ContributionInfoProcessor;
@@ -120,7 +119,7 @@
     static Workspace workspace;
     
     static List<String> problems = new ArrayList<String>();
-    static ContributionDependencyBuilderMonitor dependencyBuilderMonitor;
+    static Monitor dependencyBuilderMonitor;
     static ContributionDependencyBuilderImpl analyzer;
     static List<ContributionListener> contributionListeners;
     
@@ -173,35 +172,21 @@
             workspace = workspaceFactory.createWorkspace();
             
             // create a dependency builder 
-            dependencyBuilderMonitor = new ContributionDependencyBuilderMonitor() {
+            dependencyBuilderMonitor = new Monitor() {
                     public void problem(Problem problem) {
-                        problems.add(problem.getMessage() + " " + problem.getModel());
+                        problems.add(problem.getMessageId() + " " + problem.getProblemObject().toString());
                     }
                 };
                 
-            analyzer = new ContributionDependencyBuilderImpl(dependencyBuilderMonitor);  
+            MonitorFactory monitorFactory = registry.getExtensionPoint(MonitorFactory.class);
+            Monitor monitor = monitorFactory.createMonitor();
+            analyzer = new ContributionDependencyBuilderImpl(monitor);  
             
             // Create composite builder
             SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class);
             IntentAttachPointTypeFactory intentAttachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class);
             InterfaceContractMapper contractMapper = new InterfaceContractMapperImpl();
-            
-            CompositeBuilderMonitor monitor = new CompositeBuilderMonitor() {
-                public void problem(Problem problem) {
-                    if (problem.getSeverity() == Severity.INFO) {
-                        logger.info(problem.toString());
-                    } else if (problem.getSeverity() == Severity.WARNING) {
-                        logger.warning(problem.toString());
-                    } else if (problem.getSeverity() == Severity.ERROR) {
-                        if (problem.getCause() != null) {
-                            logger.log(Level.SEVERE, problem.toString(), problem.getCause());
-                        } else {
-                            logger.severe(problem.toString());
-                        }
-                    }
-                }
-            };
-            
+                       
             compositeBuilder = new CompositeBuilderImpl(assemblyFactory, 
                                                         scaBindingFactory, 
                                                         intentAttachPointTypeFactory,

Modified: incubator/tuscany/java/sca/itest/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/pom.xml?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/pom.xml (original)
+++ incubator/tuscany/java/sca/itest/pom.xml Fri Apr 18 09:51:20 2008
@@ -110,6 +110,7 @@
                 <module>wsdl-multiple</module>
                 <module>ws-void-args-return</module>
                 <module>transaction</module>
+                <module>validation</module>
                 <module>bpel</module>
                 <module>spring</module>
 		<module>policy</module>

Modified: incubator/tuscany/java/sca/itest/validation/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/validation/pom.xml?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/validation/pom.xml (original)
+++ incubator/tuscany/java/sca/itest/validation/pom.xml Fri Apr 18 09:51:20 2008
@@ -32,7 +32,13 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
+            <artifactId>tuscany-monitor-logging</artifactId>
+            <version>2.0-incubating-SNAPSHOT</version>
+        </dependency>
+            
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-node2-impl</artifactId>
             <version>2.0-incubating-SNAPSHOT</version>
         </dependency>
 

Added: incubator/tuscany/java/sca/itest/validation/src/main/resources/DuplicateComponentName/Calculator.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/validation/src/main/resources/DuplicateComponentName/Calculator.composite?rev=649607&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/validation/src/main/resources/DuplicateComponentName/Calculator.composite (added)
+++ incubator/tuscany/java/sca/itest/validation/src/main/resources/DuplicateComponentName/Calculator.composite Fri Apr 18 09:51:20 2008
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.    
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+           targetNamespace="http://sample"
+           xmlns:sample="http://sample"
+           name="Calculator">
+
+    <component name="CalculatorServiceComponent">
+		<implementation.java class="calculator.CalculatorServiceImpl"/>
+        <reference name="addService" target="AddServiceComponent" />
+        <reference name="subtractService" target="SubtractServiceComponent" />
+        <reference name="multiplyService" target="MultiplyServiceComponent" />
+        <reference name="divideService" target="DivideServiceComponent" />
+    </component>
+    
+    <component name="AddServiceComponent">
+        <implementation.java class="calculator.AddServiceImpl"/>
+    </component>
+    
+    <component name="AddServiceComponent">
+        <implementation.java class="calculator.AddServiceImpl"/>
+    </component>    
+
+    <component name="SubtractServiceComponent">
+        <implementation.java class="calculator.SubtractServiceImpl"/>
+    </component>
+
+    <component name="MultiplyServiceComponent">
+        <implementation.java class="calculator.MultiplyServiceImpl"/>
+    </component>
+
+    <component name="DivideServiceComponent">
+        <implementation.java class="calculator.DivideServiceImpl"/>
+    </component>
+
+</composite>

Propchange: incubator/tuscany/java/sca/itest/validation/src/main/resources/DuplicateComponentName/Calculator.composite
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/validation/src/main/resources/DuplicateComponentName/Calculator.composite
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/tuscany/java/sca/itest/validation/src/main/resources/DuplicateComponentName/Calculator.composite
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/DuplicateComponentNameTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/DuplicateComponentNameTestCase.java?rev=649607&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/DuplicateComponentNameTestCase.java (added)
+++ incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/DuplicateComponentNameTestCase.java Fri Apr 18 09:51:20 2008
@@ -0,0 +1,74 @@
+/*
+ * 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 calculator;
+
+import java.io.File;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+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.impl.DefaultLoggingMonitorImpl;
+import org.apache.tuscany.sca.node.SCAClient;
+import org.apache.tuscany.sca.node.SCANode2;
+import org.apache.tuscany.sca.node.SCANode2Factory;
+import org.apache.tuscany.sca.node.SCANode2Factory.SCAContribution;
+import org.apache.tuscany.sca.node.impl.NodeImpl;
+
+/**
+ * This shows how to test the Calculator service component.
+ */
+public class DuplicateComponentNameTestCase extends TestCase {
+
+    private CalculatorService calculatorService;
+    //private SCADomain scaDomain;
+    private SCANode2 node;
+
+    @Override
+    protected void setUp() throws Exception {
+        //scaDomain = SCADomain.newInstance("XsdValidation/Calculator.composite");
+        //calculatorService = scaDomain.getService(CalculatorService.class, "CalculatorServiceComponent");
+        SCANode2Factory nodeFactory = SCANode2Factory.newInstance();
+        node = nodeFactory.createSCANode(new File("src/main/resources/DuplicateComponentName/Calculator.composite").toURL().toString(),
+        		                 new SCAContribution("TestContribution", 
+        		                                     new File("src/main/resources/DuplicateComponentName").toURL().toString()));
+        node.start();
+        calculatorService = ((SCAClient)node).getService(CalculatorService.class, "CalculatorServiceComponent");
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        //scaDomain.close();
+        node.stop();
+    }
+
+    public void testCalculator() throws Exception {
+        ExtensionPointRegistry registry = ((NodeImpl)node).getExtensionPointRegistry();
+        MonitorFactory monitorFactory = registry.getExtensionPoint(MonitorFactory.class);
+        Monitor monitor = monitorFactory.createMonitor();
+        Problem problem = ((DefaultLoggingMonitorImpl)monitor).getLastLoggedProblem();
+        
+        assertNotNull(problem);
+        assertEquals("DuplicateComponentName", problem.getMessageId());
+ 
+    }
+}

Propchange: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/DuplicateComponentNameTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/DuplicateComponentNameTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/XSDValidationTestCase.java (from r648990, incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/CalculatorTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/XSDValidationTestCase.java?p2=incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/XSDValidationTestCase.java&p1=incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/CalculatorTestCase.java&r1=648990&r2=649607&rev=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/CalculatorTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/XSDValidationTestCase.java Fri Apr 18 09:51:20 2008
@@ -18,34 +18,55 @@
  */
 package calculator;
 
+import java.io.File;
+
 import junit.framework.TestCase;
 
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.host.embedded.SCADomain;
+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.impl.DefaultLoggingMonitorImpl;
+import org.apache.tuscany.sca.node.SCAClient;
+import org.apache.tuscany.sca.node.SCANode2;
+import org.apache.tuscany.sca.node.SCANode2Factory;
+import org.apache.tuscany.sca.node.SCANode2Factory.SCAContribution;
+import org.apache.tuscany.sca.node.impl.NodeImpl;
 
 /**
  * This shows how to test the Calculator service component.
  */
-public class CalculatorTestCase extends TestCase {
+public class XSDValidationTestCase extends TestCase {
 
     private CalculatorService calculatorService;
-    private SCADomain scaDomain;
+    //private SCADomain scaDomain;
+    private SCANode2 node;
 
     @Override
     protected void setUp() throws Exception {
-        scaDomain = SCADomain.newInstance("Calculator.composite");
-        calculatorService = scaDomain.getService(CalculatorService.class, "CalculatorServiceComponent");
+        //scaDomain = SCADomain.newInstance("XsdValidation/Calculator.composite");
+        //calculatorService = scaDomain.getService(CalculatorService.class, "CalculatorServiceComponent");
+        SCANode2Factory nodeFactory = SCANode2Factory.newInstance();
+        node = nodeFactory.createSCANode(new File("src/main/resources/XsdValidation/Calculator.composite").toURL().toString(),
+        		                 new SCAContribution("TestContribution", 
+        		                                     new File("src/main/resources/XsdValidation").toURL().toString()));
+        node.start();
+        calculatorService = ((SCAClient)node).getService(CalculatorService.class, "CalculatorServiceComponent");
     }
 
     @Override
     protected void tearDown() throws Exception {
-        scaDomain.close();
+        //scaDomain.close();
+        node.stop();
     }
 
     public void testCalculator() throws Exception {
-        // Calculate
-        assertEquals(calculatorService.add(3, 2), 5.0);
-        assertEquals(calculatorService.subtract(3, 2), 1.0);
-        assertEquals(calculatorService.multiply(3, 2), 6.0);
-        assertEquals(calculatorService.divide(3, 2), 1.5);
+        ExtensionPointRegistry registry = ((NodeImpl)node).getExtensionPointRegistry();
+        MonitorFactory monitorFactory = registry.getExtensionPoint(MonitorFactory.class);
+        Monitor monitor = monitorFactory.createMonitor();
+        Problem problem = ((DefaultLoggingMonitorImpl)monitor).getLastLoggedProblem();
+
+        // TODO - XSD errors need turing into monitored validation errors
     }
 }

Modified: incubator/tuscany/java/sca/modules/assembly/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/pom.xml?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/assembly/pom.xml Fri Apr 18 09:51:20 2008
@@ -41,10 +41,16 @@
             <version>2.0-incubating-SNAPSHOT</version>
         </dependency>
 
-	<dependency>
+	    <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-definitions</artifactId>
             <version>2.0-incubating-SNAPSHOT</version>
         </dependency>
+        
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-monitor</artifactId>
+            <version>2.0-incubating-SNAPSHOT</version>
+        </dependency>        
     </dependencies>
 </project>

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java Fri Apr 18 09:51:20 2008
@@ -26,12 +26,12 @@
 import org.apache.tuscany.sca.assembly.SCABindingFactory;
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
-import org.apache.tuscany.sca.assembly.builder.CompositeBuilderMonitor;
-import org.apache.tuscany.sca.assembly.builder.Problem;
-import org.apache.tuscany.sca.assembly.builder.Problem.Severity;
 import org.apache.tuscany.sca.definitions.SCADefinitions;
 import org.apache.tuscany.sca.interfacedef.IncompatibleInterfaceContractException;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
+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.IntentAttachPointTypeFactory;
 
 /**
@@ -57,28 +57,34 @@
                                 SCABindingFactory scaBindingFactory,
                                 IntentAttachPointTypeFactory  intentAttachPointTypeFactory,
                                 InterfaceContractMapper interfaceContractMapper,
-                                CompositeBuilderMonitor monitor) {
+                                Monitor monitor) {
         
-        if (monitor == null) {
-            // Create a default monitor that logs using the JDK logger.
-            monitor = new CompositeBuilderMonitor() {
+        if (monitor == null){
+            monitor = new Monitor () {
                 public void problem(Problem problem) {
+                    
+                    Logger problemLogger = Logger.getLogger(problem.getSourceClassName(), problem.getBundleName());
+                    
+                    if (problemLogger == null){
+                        logger.severe("Can't get logger " + problem.getSourceClassName()+ " with bundle " + problem.getBundleName());
+                    }
+                    
                     if (problem.getSeverity() == Severity.INFO) {
-                        logger.info(problem.toString());
+                        problemLogger.log(Level.INFO, problem.getMessageId(), problem.getMessageParams());
                     } else if (problem.getSeverity() == Severity.WARNING) {
-                        logger.warning(problem.toString());
+                        problemLogger.log(Level.WARNING, problem.getMessageId(), problem.getMessageParams());
                     } else if (problem.getSeverity() == Severity.ERROR) {
                         if (problem.getCause() != null) {
-                            logger.log(Level.SEVERE, problem.toString(), problem.getCause());
+                            problemLogger.log(Level.SEVERE, problem.getMessageId(), problem.getCause());
                         } else {
-                            logger.severe(problem.toString());
+                            problemLogger.log(Level.SEVERE, problem.getMessageId(), problem.getMessageParams());
                         }
                     }
-                }
+                }                
             };
         }
-
-        includeBuilder = new CompositeIncludeBuilderImpl(monitor);
+        
+        includeBuilder = new CompositeIncludeBuilderImpl(monitor); 
         wireBuilder = new CompositeWireBuilderImpl(assemblyFactory, interfaceContractMapper, monitor);
         cloneBuilder = new CompositeCloneBuilderImpl(monitor);
         configurationBuilder = new CompositeConfigurationBuilderImpl(assemblyFactory, scaBindingFactory, intentAttachPointTypeFactory, interfaceContractMapper, monitor);
@@ -89,7 +95,7 @@
                                 SCABindingFactory scaBindingFactory,
                                 IntentAttachPointTypeFactory  intentAttachPointTypeFactory,
                                 InterfaceContractMapper interfaceContractMapper,
-                                CompositeBuilderMonitor monitor, 
+                                Monitor monitor, 
                                 SCADefinitions scaDefns) {
         this(assemblyFactory, scaBindingFactory, intentAttachPointTypeFactory, interfaceContractMapper, monitor);
         configurationBuilder.setScaDefinitions(scaDefns);

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeCloneBuilderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeCloneBuilderImpl.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeCloneBuilderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeCloneBuilderImpl.java Fri Apr 18 09:51:20 2008
@@ -26,11 +26,11 @@
 import org.apache.tuscany.sca.assembly.Component;
 import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.assembly.Implementation;
-import org.apache.tuscany.sca.assembly.builder.CompositeBuilderMonitor;
+import org.apache.tuscany.sca.monitor.Monitor;
 
 public class CompositeCloneBuilderImpl {
     
-    public CompositeCloneBuilderImpl(CompositeBuilderMonitor monitor) {
+    public CompositeCloneBuilderImpl(Monitor monitor) {
     }
 
     /**

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeConfigurationBuilderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeConfigurationBuilderImpl.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeConfigurationBuilderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeConfigurationBuilderImpl.java Fri Apr 18 09:51:20 2008
@@ -43,11 +43,12 @@
 import org.apache.tuscany.sca.assembly.Service;
 import org.apache.tuscany.sca.assembly.builder.ComponentPreProcessor;
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
-import org.apache.tuscany.sca.assembly.builder.CompositeBuilderMonitor;
-import org.apache.tuscany.sca.assembly.builder.Problem.Severity;
 import org.apache.tuscany.sca.definitions.SCADefinitions;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
+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.IntentAttachPoint;
 import org.apache.tuscany.sca.policy.IntentAttachPointType;
 import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
@@ -59,7 +60,7 @@
 
     private AssemblyFactory assemblyFactory;
     private SCABindingFactory scaBindingFactory;
-    private CompositeBuilderMonitor monitor;
+    private Monitor monitor;
     private InterfaceContractMapper interfaceContractMapper;
     private IntentAttachPointTypeFactory  intentAttachPointTypeFactory;
     private SCADefinitions scaDefinitions = null;
@@ -68,7 +69,7 @@
                                              SCABindingFactory scaBindingFactory,
                                              IntentAttachPointTypeFactory  intentAttachPointTypeFactory,
                                              InterfaceContractMapper interfaceContractMapper,
-                                             CompositeBuilderMonitor monitor) {
+                                             Monitor monitor) {
         this.assemblyFactory = assemblyFactory;
         this.scaBindingFactory = scaBindingFactory;
         this.intentAttachPointTypeFactory = intentAttachPointTypeFactory;
@@ -177,9 +178,12 @@
 
             // Index all components and check for duplicates
             if (components.containsKey(component.getName())) {
+                /*                
                 warning("Duplicate component name: " + composite.getName()
-                    + " : "
-                    + component.getName(), composite);
+                        + " : "
+                        + component.getName(), composite);
+                */
+                warning("DuplicateComponentName", component, composite.getName().toString(), component.getName());
             } else {
                 components.put(component.getName(), component);
             }
@@ -295,8 +299,9 @@
      * @param message
      * @param model
      */
-    private void warning(String message, Object model) {
-        monitor.problem(new ProblemImpl(Severity.WARNING, message, model));
+    private void warning(String message, Object model, String... messageParameters) {
+        Problem problem = new ProblemImpl(this.getClass().getName(), "assembly-validation-messages", Severity.WARNING, model, message, (Object[])messageParameters);
+        monitor.problem(problem);
     }
 
     /**

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeIncludeBuilderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeIncludeBuilderImpl.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeIncludeBuilderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeIncludeBuilderImpl.java Fri Apr 18 09:51:20 2008
@@ -26,14 +26,14 @@
 import java.util.logging.Logger;
 
 import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.builder.CompositeBuilderMonitor;
+import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
 
 public class CompositeIncludeBuilderImpl {
     
     public static Logger logger = Logger.getLogger(CompositeIncludeBuilderImpl.class.getName());
 	
-    public CompositeIncludeBuilderImpl(CompositeBuilderMonitor monitor) {
+    public CompositeIncludeBuilderImpl(Monitor monitor) {
     }
 
     /**

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeWireBuilderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeWireBuilderImpl.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeWireBuilderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeWireBuilderImpl.java Fri Apr 18 09:51:20 2008
@@ -43,16 +43,17 @@
 import org.apache.tuscany.sca.assembly.SCABinding;
 import org.apache.tuscany.sca.assembly.Service;
 import org.apache.tuscany.sca.assembly.Wire;
-import org.apache.tuscany.sca.assembly.builder.CompositeBuilderMonitor;
-import org.apache.tuscany.sca.assembly.builder.Problem.Severity;
 import org.apache.tuscany.sca.interfacedef.IncompatibleInterfaceContractException;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
+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.util.PolicyComputationUtils;
 
 public class CompositeWireBuilderImpl {
 
-    private CompositeBuilderMonitor monitor;
+    private Monitor monitor;
     private AssemblyFactory assemblyFactory;
     private InterfaceContractMapper interfaceContractMapper;
     
@@ -78,7 +79,7 @@
         }
     };
     
-    public CompositeWireBuilderImpl(AssemblyFactory assemblyFactory, InterfaceContractMapper interfaceContractMapper, CompositeBuilderMonitor monitor) {
+    public CompositeWireBuilderImpl(AssemblyFactory assemblyFactory, InterfaceContractMapper interfaceContractMapper, Monitor monitor) {
         this.assemblyFactory = assemblyFactory;
         this.interfaceContractMapper = interfaceContractMapper;
         this.monitor = monitor;
@@ -205,7 +206,8 @@
      * @param model
      */
     private void warning(String message, Object model) {
-        monitor.problem(new ProblemImpl(Severity.WARNING, message, model));
+        Problem problem = new ProblemImpl(this.getClass().getName(), "assembly-validation-messages", Severity.WARNING, model, message);
+        monitor.problem(problem);
     }
 
     /**

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/DomainWireBuilderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/DomainWireBuilderImpl.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/DomainWireBuilderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/DomainWireBuilderImpl.java Fri Apr 18 09:51:20 2008
@@ -31,9 +31,9 @@
 import org.apache.tuscany.sca.assembly.Reference;
 import org.apache.tuscany.sca.assembly.SCABindingFactory;
 import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.assembly.builder.CompositeBuilderMonitor;
 import org.apache.tuscany.sca.assembly.builder.DomainBuilder;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
+import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
 
 public class DomainWireBuilderImpl implements DomainBuilder {
@@ -44,7 +44,7 @@
             SCABindingFactory scaBindingFactory,
             IntentAttachPointTypeFactory  intentAttachPointTypeFactory,
             InterfaceContractMapper interfaceContractMapper,
-            CompositeBuilderMonitor monitor) {
+            Monitor monitor) {
         wireBuilder = new CompositeWireBuilderImpl(assemblyFactory, interfaceContractMapper, monitor);
     }
     

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ProblemImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ProblemImpl.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ProblemImpl.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ProblemImpl.java Fri Apr 18 09:51:20 2008
@@ -19,7 +19,7 @@
 
 package org.apache.tuscany.sca.assembly.builder.impl;
 
-import org.apache.tuscany.sca.assembly.builder.Problem;
+import org.apache.tuscany.sca.monitor.Problem;
 
 /**
  * Reports a composite assembly problem. 
@@ -28,85 +28,87 @@
  */
 public class ProblemImpl implements Problem {
 
-    private String message;
+    private String sourceClassName;
+    private String bundleName;
     private Severity severity;
-    private Object model;
-    private Object resource;
+    private Object problemObject;
+    private String messageId;
+    private Object[] messageParams;
     private Exception cause;
 
     /**
-     * Constructs a new problem.
+     * Construct a new problem
      * 
-     * @param severity
-     * @param message
-     * @param model
+     * @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(Severity severity, String message, Object model) {
+    public ProblemImpl(String sourceClassName, String bundleName, Severity severity, Object problemObject, String messageId, Object... messageParams ) {
+        this.sourceClassName = sourceClassName;
+        this.bundleName = bundleName;
         this.severity = severity;
-        this.message = message;
-        this.model = model;
+        this.problemObject = problemObject;
+        this.messageId = messageId;
+        this.messageParams = messageParams;
     }
-
-    /**
-     * Constructs a new problem.
-     * 
-     * @param severity
-     * @param message
-     * @param model
-     * @param resource
-     */
-    public ProblemImpl(Severity severity, String message, Object model, Object resource) {
-        this.severity = severity;
-        this.message = message;
-        this.model = model;
-        this.resource = resource;
-    }
-
+    
     /**
-     * Constructs a new problem.
+     * Construct a new problem
      * 
-     * @param severity
-     * @param message
-     * @param cause
+     * @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(Severity severity, String message, Exception cause) {
-        this.severity = severity;
-        this.message = message;
+    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 String getMessage() {
-        return message;
+    
+    public Object getProblemObject() {
+        return problemObject;
     }
-
-    public Object getModel() {
-        return model;
+    
+    public String getMessageId() {
+        return messageId;
     }
 
-    public Object getResource() {
-        return resource;
+    public Object[] getMessageParams() {
+        return messageParams;
     }
-
+    
     public Exception getCause() {
         return cause;
-    }
+    }    
 
     @Override
     public String toString() {
         StringBuffer sb = new StringBuffer();
-        if (message !=  null) {
-            sb.append(message);
-        }
-        if (resource != null) {
-            if (sb.length() != 0) {
-                sb.append(" - ");
-            }
-            sb.append(resource.toString());
+        if (messageId !=  null) {
+            sb.append(messageId);
         }
+        
         return sb.toString();
     }
 }

Added: incubator/tuscany/java/sca/modules/assembly/src/main/resources/assembly-validation-messages_en.properties
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/resources/assembly-validation-messages_en.properties?rev=649607&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/resources/assembly-validation-messages_en.properties (added)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/resources/assembly-validation-messages_en.properties Fri Apr 18 09:51:20 2008
@@ -0,0 +1,21 @@
+#
+#
+#    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.
+#
+#
+DuplicateComponentName = Duplicate component name: Composite = {0} Component = {1}

Propchange: incubator/tuscany/java/sca/modules/assembly/src/main/resources/assembly-validation-messages_en.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/assembly/src/main/resources/assembly-validation-messages_en.properties
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/tuscany/java/sca/modules/assembly/src/main/resources/assembly-validation-messages_en.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/builder/impl/CalculateBindingURITestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/builder/impl/CalculateBindingURITestCase.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/builder/impl/CalculateBindingURITestCase.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/builder/impl/CalculateBindingURITestCase.java Fri Apr 18 09:51:20 2008
@@ -37,15 +37,15 @@
 import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory;
 import org.apache.tuscany.sca.assembly.SCABinding;
 import org.apache.tuscany.sca.assembly.SCABindingFactory;
-import org.apache.tuscany.sca.assembly.builder.CompositeBuilderMonitor;
-import org.apache.tuscany.sca.assembly.builder.Problem;
-import org.apache.tuscany.sca.assembly.builder.Problem.Severity;
+import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.monitor.Problem;
+import org.apache.tuscany.sca.monitor.Problem.Severity;
 
 public class CalculateBindingURITestCase extends TestCase {
     private final static Logger logger = Logger.getLogger(CalculateBindingURITestCase.class.getName());
     private AssemblyFactory assemblyFactory;
     private SCABindingFactory scaBindingFactory = null;
-    private CompositeBuilderMonitor monitor = null;
+    private Monitor monitor = null;
     private CompositeConfigurationBuilderImpl configurationBuilder = null;
     private List<Binding> defaultBindings = new ArrayList<Binding>();
     
@@ -53,7 +53,7 @@
     protected void setUp() throws Exception {
         assemblyFactory = new DefaultAssemblyFactory();
         scaBindingFactory = new TestBindingFactory();
-        monitor = new CompositeBuilderMonitor() {
+        monitor = new Monitor() {
             public void problem(Problem problem) {
                 if (problem.getSeverity() == Severity.INFO) {
                     logger.info(problem.toString());

Modified: incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java (original)
+++ incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java Fri Apr 18 09:51:20 2008
@@ -30,8 +30,6 @@
 import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory;
 import org.apache.tuscany.sca.assembly.SCABindingFactory;
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
-import org.apache.tuscany.sca.assembly.builder.CompositeBuilderMonitor;
-import org.apache.tuscany.sca.assembly.builder.Problem;
 import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl;
 import org.apache.tuscany.sca.assembly.xml.ComponentTypeProcessor;
 import org.apache.tuscany.sca.assembly.xml.CompositeProcessor;
@@ -68,6 +66,8 @@
 import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
 import org.apache.tuscany.sca.interfacedef.java.xml.JavaInterfaceProcessor;
+import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.policy.DefaultIntentAttachPointTypeFactory;
 import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
 import org.apache.tuscany.sca.policy.PolicyFactory;
@@ -168,14 +168,10 @@
     private void buildComposite(Composite composite, AssemblyFactory assemblyFactory,
                                 SCABindingFactory scaBindingFactory, InterfaceContractMapper interfaceContractMapper) throws CompositeBuilderException {
 
-        CompositeBuilderMonitor monitor = new CompositeBuilderMonitor() {
+        Monitor monitor = new Monitor() {
 
             public void problem(Problem problem) {
-                // Uncommenting the following two lines can be useful to detect
-                // and troubleshoot SCA assembly XML composite configuration
-                // problems.
-
-                System.out.println("Composite assembly problem: " + problem);
+                System.out.println("Composite assembly problem: " + problem.toString());
             }
         };
 

Modified: incubator/tuscany/java/sca/modules/host-embedded/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/pom.xml?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/pom.xml Fri Apr 18 09:51:20 2008
@@ -101,6 +101,7 @@
             <version>2.0-incubating-SNAPSHOT</version>
             <scope>runtime</scope>
         </dependency>
+     
 
     </dependencies>
 </project>

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java Fri Apr 18 09:51:20 2008
@@ -57,6 +57,8 @@
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl;
 import org.apache.tuscany.sca.invocation.MessageFactory;
+import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.monitor.MonitorFactory;
 import org.apache.tuscany.sca.policy.DefaultIntentAttachPointTypeFactory;
 import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
 import org.apache.tuscany.sca.policy.Intent;
@@ -193,12 +195,23 @@
         IntentAttachPointTypeFactory intentAttachPointTypeFactory = factories.getFactory(IntentAttachPointTypeFactory.class);
         InterfaceContractMapper mapper = new InterfaceContractMapperImpl();
         
+        // create a monitor to catch validation errors
+        MonitorFactory monitorFactory = registry.getExtensionPoint(MonitorFactory.class);
+        Monitor monitor = null;
+        
+        if (monitorFactory != null){
+            monitor = monitorFactory.createMonitor();
+        } else {
+            logger.warning("Can't find monitor extension on the classpath");
+        }
+        
         //Create a composite builder
         SCADefinitions scaDefns = new SCADefinitionsImpl();
         for ( SCADefinitions aDef : ((List<SCADefinitions>)scaDefnsSink) ) {
             SCADefinitionsUtil.aggregateSCADefinitions(aDef, scaDefns);
         }
-        compositeBuilder = ReallySmallRuntimeBuilder.createCompositeBuilder(assemblyFactory,
+        compositeBuilder = ReallySmallRuntimeBuilder.createCompositeBuilder(monitor,
+                                                                            assemblyFactory,
                                                                             scaBindingFactory,
                                                                             intentAttachPointTypeFactory,
                                                                             mapper, 

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java Fri Apr 18 09:51:20 2008
@@ -85,6 +85,7 @@
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
 import org.apache.tuscany.sca.invocation.MessageFactory;
+import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
 import org.apache.tuscany.sca.policy.PolicyFactory;
 import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
@@ -146,16 +147,19 @@
         return compositeActivator;
     }
 
-    public static CompositeBuilder createCompositeBuilder(AssemblyFactory assemblyFactory,
+    public static CompositeBuilder createCompositeBuilder(Monitor monitor,
+                                                          AssemblyFactory assemblyFactory,
                                                           SCABindingFactory scaBindingFactory,
                                                           IntentAttachPointTypeFactory intentAttachPointTypeFactory,
                                                           InterfaceContractMapper interfaceContractMapper,
                                                           SCADefinitions scaDefns) {
+      
+        
         return new CompositeBuilderImpl(assemblyFactory, 
                                         scaBindingFactory, 
                                         intentAttachPointTypeFactory, 
                                         interfaceContractMapper, 
-                                        null,
+                                        monitor,
                                         scaDefns);
     }
     

Modified: incubator/tuscany/java/sca/modules/monitor-logging/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/monitor-logging/pom.xml?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/monitor-logging/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/monitor-logging/pom.xml Fri Apr 18 09:51:20 2008
@@ -27,8 +27,8 @@
         <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>tuscany-monitor-impl</artifactId>
-    <name>Apache Tuscany Monitor Default Implementation</name>
+    <artifactId>tuscany-monitor-Logging</artifactId>
+    <name>Apache Tuscany SCA Monitor Default Logging Implementation</name>
 
     <dependencies>   
         
@@ -37,6 +37,12 @@
             <artifactId>tuscany-monitor</artifactId>
             <version>2.0-incubating-SNAPSHOT</version>
         </dependency> 
+        
+         <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-assembly</artifactId>
+            <version>2.0-incubating-SNAPSHOT</version>
+        </dependency>         
  
     </dependencies>
 

Modified: incubator/tuscany/java/sca/modules/monitor-logging/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultLoggingMonitorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/monitor-logging/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultLoggingMonitorImpl.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/monitor-logging/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultLoggingMonitorImpl.java (original)
+++ incubator/tuscany/java/sca/modules/monitor-logging/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultLoggingMonitorImpl.java Fri Apr 18 09:51:20 2008
@@ -35,6 +35,8 @@
 public class DefaultLoggingMonitorImpl implements Monitor {
     private final static Logger logger = Logger.getLogger(DefaultLoggingMonitorImpl.class.getName());
 
+    // remembers the last logged problem for testing purposes
+    private Problem lastProblem = null;
 
     /**
      * Reports a build problem.
@@ -43,6 +45,8 @@
      */
     public void problem(Problem problem) {
         
+        lastProblem = problem;
+        
         Logger problemLogger = Logger.getLogger(problem.getSourceClassName(), problem.getBundleName());
         
         if (problemLogger == null){
@@ -60,5 +64,9 @@
                 problemLogger.log(Level.SEVERE, problem.getMessageId(), problem.getMessageParams());
             }
         }
+    }
+    
+    public Problem getLastLoggedProblem(){
+        return lastProblem;
     }
 }

Modified: incubator/tuscany/java/sca/modules/monitor-logging/src/main/java/org/apache/tuscany/sca/monitor/impl/MonitorFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/monitor-logging/src/main/java/org/apache/tuscany/sca/monitor/impl/MonitorFactoryImpl.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/monitor-logging/src/main/java/org/apache/tuscany/sca/monitor/impl/MonitorFactoryImpl.java (original)
+++ incubator/tuscany/java/sca/modules/monitor-logging/src/main/java/org/apache/tuscany/sca/monitor/impl/MonitorFactoryImpl.java Fri Apr 18 09:51:20 2008
@@ -34,8 +34,13 @@
  * @version $Rev$ $Date$
  */
 public class MonitorFactoryImpl implements MonitorFactory {
+    
+    private Monitor monitor = null;
 
     public Monitor createMonitor() {
-        return new DefaultLoggingMonitorImpl();
+        if (monitor == null){
+            monitor = new DefaultLoggingMonitorImpl();
+        }
+        return monitor ;
     }
 }

Copied: incubator/tuscany/java/sca/modules/monitor-logging/src/main/resources/META-INF/services/org.apache.tuscany.sca.monitor.MonitorFactory (from r649466, incubator/tuscany/java/sca/modules/monitor-logging/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.monitor.MonitorFactory)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/monitor-logging/src/main/resources/META-INF/services/org.apache.tuscany.sca.monitor.MonitorFactory?p2=incubator/tuscany/java/sca/modules/monitor-logging/src/main/resources/META-INF/services/org.apache.tuscany.sca.monitor.MonitorFactory&p1=incubator/tuscany/java/sca/modules/monitor-logging/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.monitor.MonitorFactory&r1=649466&r2=649607&rev=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/monitor-logging/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.monitor.MonitorFactory (original)
+++ incubator/tuscany/java/sca/modules/monitor-logging/src/main/resources/META-INF/services/org.apache.tuscany.sca.monitor.MonitorFactory Fri Apr 18 09:51:20 2008
@@ -15,4 +15,4 @@
 # specific language governing permissions and limitations
 # under the License. 
 
-org.apache.tuscany.sca.assembly.monitor.impl.MonitorFactoryImpl
+org.apache.tuscany.sca.monitor.impl.MonitorFactoryImpl

Modified: incubator/tuscany/java/sca/modules/monitor/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/monitor/pom.xml?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/monitor/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/monitor/pom.xml Fri Apr 18 09:51:20 2008
@@ -28,7 +28,7 @@
     </parent>
 
     <artifactId>tuscany-monitor</artifactId>
-    <name>Apache Tuscany Monitor</name>
+    <name>Apache Tuscany SCA Monitor</name>
 
     <dependencies>   
 

Modified: incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/SCANode2Factory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/SCANode2Factory.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/SCANode2Factory.java (original)
+++ incubator/tuscany/java/sca/modules/node2-api/src/main/java/org/apache/tuscany/sca/node/SCANode2Factory.java Fri Apr 18 09:51:20 2008
@@ -77,7 +77,7 @@
      * Creates a new SCA node.
      * 
      * @param compositeURI the URI of the composite to use 
-     * @param contributions the URI of the composite to use 
+     * @param contributions the URI of the contributions that provides the composites and related artifacts 
      * @return a new SCA node.
      */
     public abstract SCANode2 createSCANode(String compositeURI, SCAContribution... contributions);

Modified: incubator/tuscany/java/sca/modules/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/pom.xml?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/pom.xml Fri Apr 18 09:51:20 2008
@@ -125,6 +125,8 @@
                 <module>implementation-spring</module>
                 <module>implementation-widget</module>
                 <module>implementation-xquery</module>
+                <module>monitor</module>
+                <module>monitor-logging</module>
                 <module>node</module>
                 <module>node-api</module>
                 <module>node2-api</module>

Modified: incubator/tuscany/java/sca/modules/workspace-admin/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/pom.xml?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/pom.xml Fri Apr 18 09:51:20 2008
@@ -163,6 +163,13 @@
             <version>2.0-incubating-SNAPSHOT</version>
             <scope>runtime</scope>
         </dependency>
+        
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-monitor-logging</artifactId>
+            <version>2.0-incubating-SNAPSHOT</version>
+            <scope>runtime</scope>
+        </dependency>        
 
     </dependencies>
 

Modified: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionCollectionImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionCollectionImpl.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionCollectionImpl.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionCollectionImpl.java Fri Apr 18 09:51:20 2008
@@ -54,7 +54,6 @@
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
 import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.builder.Problem;
 import org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor;
 import org.apache.tuscany.sca.assembly.xml.CompositeProcessor;
 import org.apache.tuscany.sca.contribution.Contribution;
@@ -74,16 +73,20 @@
 import org.apache.tuscany.sca.contribution.xml.ContributionGeneratedMetadataDocumentProcessor;
 import org.apache.tuscany.sca.contribution.xml.ContributionMetadataDocumentProcessor;
 import org.apache.tuscany.sca.contribution.xml.ContributionMetadataProcessor;
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.implementation.data.collection.Entry;
 import org.apache.tuscany.sca.implementation.data.collection.Item;
 import org.apache.tuscany.sca.implementation.data.collection.ItemCollection;
 import org.apache.tuscany.sca.implementation.data.collection.LocalItemCollection;
 import org.apache.tuscany.sca.implementation.data.collection.NotFoundException;
+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.policy.PolicyFactory;
 import org.apache.tuscany.sca.workspace.Workspace;
 import org.apache.tuscany.sca.workspace.WorkspaceFactory;
 import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder;
-import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilderMonitor;
 import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl;
 import org.apache.tuscany.sca.workspace.processor.impl.ContributionInfoProcessor;
 import org.apache.tuscany.sca.workspace.xml.WorkspaceProcessor;
@@ -114,6 +117,8 @@
     @Property
     public String deploymentContributionDirectory;
     
+    private ExtensionPointRegistry registry;
+    private Monitor monitor;
     private ContributionFactory contributionFactory;
     private AssemblyFactory assemblyFactory;
     private WorkspaceFactory workspaceFactory;
@@ -130,6 +135,13 @@
     @Init
     public void initialize() throws ParserConfigurationException {
         
+        registry = new DefaultExtensionPointRegistry();
+        
+        // create a validation monitor
+        MonitorFactory monitorFactory = registry.getExtensionPoint(MonitorFactory.class);
+        monitor = monitorFactory.createMonitor();
+        
+        
         // Create model factories
         ModelFactoryExtensionPoint modelFactories = new DefaultModelFactoryExtensionPoint();
         outputFactory = modelFactories.getFactory(XMLOutputFactory.class);
@@ -294,10 +306,10 @@
             
             // Look for the specified contribution
             for (Contribution contribution: workspace.getContributions()) {
-                if (key.equals(contribution.getURI())) {
+                if (key.equals(contribution.getURI())) {                
 
                     // Compute the contribution dependencies
-                    ContributionDependencyBuilder analyzer = new ContributionDependencyBuilderImpl(null);
+                    ContributionDependencyBuilder analyzer = new ContributionDependencyBuilderImpl(monitor);
                     List<Contribution> dependencies = analyzer.buildContributionDependencies(workspace, contribution);
                     
                     // Returns entries for the dependencies
@@ -348,9 +360,9 @@
         
         // List the contribution dependencies in the item contents
         final List<String> problems = new ArrayList<String>();
-        ContributionDependencyBuilderMonitor monitor = new ContributionDependencyBuilderMonitor() {
+        Monitor monitor = new Monitor() {
             public void problem(Problem problem) {
-                problems.add(problem.getMessage() + " " + problem.getModel());
+                problems.add(problem.getMessageId() + " " + problem.getProblemObject().toString());
             }
         };
         

Modified: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/DeployableCompositeCollectionImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/DeployableCompositeCollectionImpl.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/DeployableCompositeCollectionImpl.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/DeployableCompositeCollectionImpl.java Fri Apr 18 09:51:20 2008
@@ -60,9 +60,6 @@
 import org.apache.tuscany.sca.assembly.SCABindingFactory;
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
-import org.apache.tuscany.sca.assembly.builder.CompositeBuilderMonitor;
-import org.apache.tuscany.sca.assembly.builder.Problem;
-import org.apache.tuscany.sca.assembly.builder.Problem.Severity;
 import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl;
 import org.apache.tuscany.sca.assembly.builder.impl.CompositeConfigurationBuilderImpl;
 import org.apache.tuscany.sca.assembly.xml.Constants;
@@ -97,6 +94,8 @@
 import org.apache.tuscany.sca.implementation.node.NodeImplementation;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl;
+import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.monitor.MonitorFactory;
 import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
 import org.apache.tuscany.sca.policy.PolicyFactory;
 import org.apache.tuscany.sca.workspace.processor.impl.ContributionContentProcessor;
@@ -177,22 +176,10 @@
         IntentAttachPointTypeFactory intentAttachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class);
         InterfaceContractMapper contractMapper = new InterfaceContractMapperImpl();
         
-        // TODO need to get these messages back to the browser
-        CompositeBuilderMonitor monitor = new CompositeBuilderMonitor() {
-            public void problem(Problem problem) {
-                if (problem.getSeverity() == Severity.INFO) {
-                    logger.info(problem.toString());
-                } else if (problem.getSeverity() == Severity.WARNING) {
-                    logger.warning(problem.toString());
-                } else if (problem.getSeverity() == Severity.ERROR) {
-                    if (problem.getCause() != null) {
-                        logger.log(Level.SEVERE, problem.toString(), problem.getCause());
-                    } else {
-                        logger.severe(problem.toString());
-                    }
-                }
-            }
-        };
+        // TODO need to get these messages back to the browser - So need
+        //      a monitor that caches all the problems for a set of processing
+        MonitorFactory monitorFactory = registry.getExtensionPoint(MonitorFactory.class);
+        Monitor monitor = monitorFactory.createMonitor();
         
         compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, intentAttachPointTypeFactory,
                                                     contractMapper, monitor);

Modified: incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java?rev=649607&r1=649606&r2=649607&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java Fri Apr 18 09:51:20 2008
@@ -27,15 +27,15 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.apache.tuscany.sca.assembly.builder.Problem;
-import org.apache.tuscany.sca.assembly.builder.Problem.Severity;
 import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
 import org.apache.tuscany.sca.contribution.Contribution;
 import org.apache.tuscany.sca.contribution.Export;
 import org.apache.tuscany.sca.contribution.Import;
+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.workspace.Workspace;
 import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder;
-import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilderMonitor;
 
 /**
  * A contribution dependency builder.
@@ -45,32 +45,13 @@
 public class ContributionDependencyBuilderImpl implements ContributionDependencyBuilder {
     private final static Logger logger = Logger.getLogger(ContributionDependencyBuilderImpl.class.getName());
     
-    private ContributionDependencyBuilderMonitor monitor;
+    private Monitor monitor;
     
     /**
      * Constructs a new ContributionDependencyBuilder.
      */
-    public ContributionDependencyBuilderImpl(ContributionDependencyBuilderMonitor monitor) {
-        
-        if (monitor == null) {
-            // Create a default monitor that logs using the JDK logger.
-            monitor = new ContributionDependencyBuilderMonitor() {
-                public void problem(Problem problem) {
-                    if (problem.getSeverity() == Severity.INFO) {
-                        logger.info(problem.toString());
-                    } else if (problem.getSeverity() == Severity.WARNING) {
-                        logger.warning(problem.toString());
-                    } else if (problem.getSeverity() == Severity.ERROR) {
-                        if (problem.getCause() != null) {
-                            logger.log(Level.SEVERE, problem.toString(), problem.getCause());
-                        } else {
-                            logger.severe(problem.toString());
-                        }
-                    }
-                }
-            };
-        }
-        
+    public ContributionDependencyBuilderImpl(Monitor monitor) {
+               
         this.monitor = monitor;
     }
     
@@ -127,7 +108,8 @@
             
             if (!resolved) {
                 // Record import resolution issue
-                monitor.problem(new ProblemImpl(Severity.WARNING, "Unresolved import", import_));
+                Problem problem = new ProblemImpl(this.getClass().getName(), "workspace-validation-messages", Severity.WARNING, import_, "Unresolved import");
+                monitor.problem(problem);
             }
         }
     }

Added: incubator/tuscany/java/sca/modules/workspace-impl/src/main/resources/workspace-validation-messages_en.properties
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-impl/src/main/resources/workspace-validation-messages_en.properties?rev=649607&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-impl/src/main/resources/workspace-validation-messages_en.properties (added)
+++ incubator/tuscany/java/sca/modules/workspace-impl/src/main/resources/workspace-validation-messages_en.properties Fri Apr 18 09:51:20 2008
@@ -0,0 +1,21 @@
+#
+#
+#    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.
+#
+#
+

Propchange: incubator/tuscany/java/sca/modules/workspace-impl/src/main/resources/workspace-validation-messages_en.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/workspace-impl/src/main/resources/workspace-validation-messages_en.properties
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/tuscany/java/sca/modules/workspace-impl/src/main/resources/workspace-validation-messages_en.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org