summaryrefslogtreecommitdiffstats
path: root/java/sca/itest
diff options
context:
space:
mode:
authorslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2008-10-31 09:44:57 +0000
committerslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2008-10-31 09:44:57 +0000
commit66e05fbc5dbe0d5806881166c30aaf543576fdd1 (patch)
treed5cc2cd21214e5615e4fb6d36b66dcd04d7fb153 /java/sca/itest
parent95c83c38d814e6dbcceb9efdcd4b62d60a16c051 (diff)
TUSCANY-2631 - Make the contribution processor more fault tolerant. Apply Ram's patches (and a few other changes). Doesn't do everything asked for in the JIRA but a step in the right direction
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@709372 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/itest')
-rw-r--r--java/sca/itest/validation/src/main/resources/contribution/xml/MultipleCompositeErrors/Calculator.composite53
-rw-r--r--java/sca/itest/validation/src/main/resources/contribution/xml/MultipleCompositeErrors/sca-contribution.xml31
-rw-r--r--java/sca/itest/validation/src/test/java/binding/jms/MissingActivationSpecNameTestCase.java2
-rw-r--r--java/sca/itest/validation/src/test/java/binding/jms/MissingConnectionFactoryNameTestCase.java2
-rw-r--r--java/sca/itest/validation/src/test/java/binding/jms/MissingResponseActivationSpecTestCase.java2
-rw-r--r--java/sca/itest/validation/src/test/java/binding/jms/MissingResponseConnectionFactoryTestCase.java2
-rw-r--r--java/sca/itest/validation/src/test/java/contribution/xml/MultipleCompositeErrorsTestCase.java64
-rw-r--r--java/sca/itest/validation/src/test/java/domain/CustomCompositeBuilder.java11
8 files changed, 162 insertions, 5 deletions
diff --git a/java/sca/itest/validation/src/main/resources/contribution/xml/MultipleCompositeErrors/Calculator.composite b/java/sca/itest/validation/src/main/resources/contribution/xml/MultipleCompositeErrors/Calculator.composite
new file mode 100644
index 0000000000..70f91d1a7d
--- /dev/null
+++ b/java/sca/itest/validation/src/main/resources/contribution/xml/MultipleCompositeErrors/Calculator.composite
@@ -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"
+ xmlns:calc="http://calc"
+ targetNamespace="http://calc"
+ name="Calculator">
+
+ <service name="CalculatorService" promote="CalculatorServiceComponent">
+ <interface.java interface="calculator.warning.CalculatorService"/>
+ </service>
+
+ <component name="CalculatorServiceComponent">
+ <implementation.java class="calculator.warning.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.warning.AddServiceImpl"/>
+ </component>
+
+ <component name="SubtractServiceComponent">
+ <implementation.java class="calculator.warning.SubtractServiceImpl"/>
+ </component>
+
+ <component name="MultiplyServiceComponent">
+ <implementation.java class="calculator.warning.MultiplyServiceImpl"/>
+ </component>
+
+ <component name="DivideServiceComponent">
+ <implementation.java class="calculator.warning.DivideServiceImpl"/>
+ </component>
+
+</composite>
diff --git a/java/sca/itest/validation/src/main/resources/contribution/xml/MultipleCompositeErrors/sca-contribution.xml b/java/sca/itest/validation/src/main/resources/contribution/xml/MultipleCompositeErrors/sca-contribution.xml
new file mode 100644
index 0000000000..c1ff61f07c
--- /dev/null
+++ b/java/sca/itest/validation/src/main/resources/contribution/xml/MultipleCompositeErrors/sca-contribution.xml
@@ -0,0 +1,31 @@
+<?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.
+-->
+
+<!-- to test TUSCANY-2631 -->
+
+<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://sample"
+ xmlns:sample="http://sample">
+ <deployable xmlns:ns1="http://temp"></deployable>
+ <deployable composite="ns1:aaaa" xmlns:ns1="http://temp"></deployable>
+ <deployable xmlns:ns1="http://temp"></deployable>
+ <deployable composite="ns1:dfsdf" xmlns:ns1="x"></deployable>
+ <deployable composite="ns1:dsfs" xmlns:ns1="http://temp"></deployable>
+</contribution> \ No newline at end of file
diff --git a/java/sca/itest/validation/src/test/java/binding/jms/MissingActivationSpecNameTestCase.java b/java/sca/itest/validation/src/test/java/binding/jms/MissingActivationSpecNameTestCase.java
index a974ef0db4..d38a88744f 100644
--- a/java/sca/itest/validation/src/test/java/binding/jms/MissingActivationSpecNameTestCase.java
+++ b/java/sca/itest/validation/src/test/java/binding/jms/MissingActivationSpecNameTestCase.java
@@ -52,7 +52,7 @@ public class MissingActivationSpecNameTestCase extends TestCase {
public void testCalculator() {
Monitor monitor = customDomain.getMonitorInstance();
- Problem problem = ((DefaultLoggingMonitorImpl)monitor).getLastLoggedProblem();
+ Problem problem = ((DefaultLoggingMonitorImpl)monitor).getProblems().get(1);
assertNotNull(problem);
assertEquals("MissingActivationSpecName", problem.getMessageId());
diff --git a/java/sca/itest/validation/src/test/java/binding/jms/MissingConnectionFactoryNameTestCase.java b/java/sca/itest/validation/src/test/java/binding/jms/MissingConnectionFactoryNameTestCase.java
index adbaa50dc0..6999ae7969 100644
--- a/java/sca/itest/validation/src/test/java/binding/jms/MissingConnectionFactoryNameTestCase.java
+++ b/java/sca/itest/validation/src/test/java/binding/jms/MissingConnectionFactoryNameTestCase.java
@@ -52,7 +52,7 @@ public class MissingConnectionFactoryNameTestCase extends TestCase {
public void testCalculator() {
Monitor monitor = customDomain.getMonitorInstance();
- Problem problem = ((DefaultLoggingMonitorImpl)monitor).getLastLoggedProblem();
+ Problem problem = ((DefaultLoggingMonitorImpl)monitor).getProblems().get(1);
assertNotNull(problem);
assertEquals("MissingConnectionFactoryName", problem.getMessageId());
diff --git a/java/sca/itest/validation/src/test/java/binding/jms/MissingResponseActivationSpecTestCase.java b/java/sca/itest/validation/src/test/java/binding/jms/MissingResponseActivationSpecTestCase.java
index 4bba6b74de..7333fc0f1e 100644
--- a/java/sca/itest/validation/src/test/java/binding/jms/MissingResponseActivationSpecTestCase.java
+++ b/java/sca/itest/validation/src/test/java/binding/jms/MissingResponseActivationSpecTestCase.java
@@ -52,7 +52,7 @@ public class MissingResponseActivationSpecTestCase extends TestCase {
public void testCalculator() {
Monitor monitor = customDomain.getMonitorInstance();
- Problem problem = ((DefaultLoggingMonitorImpl)monitor).getLastLoggedProblem();
+ Problem problem = ((DefaultLoggingMonitorImpl)monitor).getProblems().get(1);
assertNotNull(problem);
assertEquals("MissingResponseActivationSpec", problem.getMessageId());
diff --git a/java/sca/itest/validation/src/test/java/binding/jms/MissingResponseConnectionFactoryTestCase.java b/java/sca/itest/validation/src/test/java/binding/jms/MissingResponseConnectionFactoryTestCase.java
index 8f4fc1a739..ca0ef9a294 100644
--- a/java/sca/itest/validation/src/test/java/binding/jms/MissingResponseConnectionFactoryTestCase.java
+++ b/java/sca/itest/validation/src/test/java/binding/jms/MissingResponseConnectionFactoryTestCase.java
@@ -52,7 +52,7 @@ public class MissingResponseConnectionFactoryTestCase extends TestCase {
public void testCalculator() {
Monitor monitor = customDomain.getMonitorInstance();
- Problem problem = ((DefaultLoggingMonitorImpl)monitor).getLastLoggedProblem();
+ Problem problem = ((DefaultLoggingMonitorImpl)monitor).getProblems().get(1);
assertNotNull(problem);
assertEquals("MissingResponseConnectionFactory", problem.getMessageId());
diff --git a/java/sca/itest/validation/src/test/java/contribution/xml/MultipleCompositeErrorsTestCase.java b/java/sca/itest/validation/src/test/java/contribution/xml/MultipleCompositeErrorsTestCase.java
new file mode 100644
index 0000000000..0a71ea06c7
--- /dev/null
+++ b/java/sca/itest/validation/src/test/java/contribution/xml/MultipleCompositeErrorsTestCase.java
@@ -0,0 +1,64 @@
+/*
+ * 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 contribution.xml;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.monitor.Problem;
+import org.apache.tuscany.sca.monitor.logging.impl.DefaultLoggingMonitorImpl;
+
+import domain.CustomCompositeBuilder;
+
+/**
+ * This shows how to test the Calculator service component.
+ */
+public class MultipleCompositeErrorsTestCase extends TestCase {
+
+ private CustomCompositeBuilder customDomain;
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ customDomain = CustomCompositeBuilder.getInstance();
+ try {
+ customDomain.loadContribution("src/main/resources/contribution/xml/MultipleCompositeErrors/Calculator.composite",
+ "TestContribution",
+ "src/main/resources/contribution/xml/MultipleCompositeErrors/");
+ } catch (Exception ex){
+ //throw ex;
+ System.out.println("Got Exception");
+ }
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ //node.stop();
+ }
+
+ public void testCalculator() {
+ Monitor monitor = customDomain.getMonitorInstance();
+ Problem problem = ((DefaultLoggingMonitorImpl)monitor).getLastLoggedProblem();
+
+ assertNotNull(problem);
+ assertEquals(5, monitor.getProblems().size());
+ assertEquals("AttributeCompositeMissing", problem.getMessageId());
+
+ }
+}
diff --git a/java/sca/itest/validation/src/test/java/domain/CustomCompositeBuilder.java b/java/sca/itest/validation/src/test/java/domain/CustomCompositeBuilder.java
index 8665bfd535..65814470a4 100644
--- a/java/sca/itest/validation/src/test/java/domain/CustomCompositeBuilder.java
+++ b/java/sca/itest/validation/src/test/java/domain/CustomCompositeBuilder.java
@@ -38,11 +38,14 @@ import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl;
import org.apache.tuscany.sca.contribution.Contribution;
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.DefaultValidatingXMLInputFactory;
+import org.apache.tuscany.sca.contribution.processor.DefaultValidationSchemaExtensionPoint;
import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.ValidationSchemaExtensionPoint;
import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver;
import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint;
import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
@@ -111,7 +114,13 @@ public class CustomCompositeBuilder {
// Get XML input/output factories
modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class);
- outputFactory = modelFactories.getFactory(XMLOutputFactory.class);
+ outputFactory = modelFactories.getFactory(XMLOutputFactory.class);
+
+ // create the validating input factory out here just so that the
+ // monitor can be passed in
+ ValidationSchemaExtensionPoint schemas = new DefaultValidationSchemaExtensionPoint();
+ XMLInputFactory validatingInputFactory = new DefaultValidatingXMLInputFactory(inputFactory, schemas, monitor);
+ modelFactories.addFactory(validatingInputFactory);
// Get contribution workspace and assembly model factories
workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class);