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/23 11:55:07 UTC
svn commit: r650810 [2/2] - in /incubator/tuscany/java/sca:
itest/validation/src/main/java/calculator/
itest/validation/src/main/resources/ComponentReferenceTargetNotFound/
itest/validation/src/main/resources/MultipleBindingsForService/
itest/validatio...
Added: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceIncompatibleInterfaceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceIncompatibleInterfaceTestCase.java?rev=650810&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceIncompatibleInterfaceTestCase.java (added)
+++ incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceIncompatibleInterfaceTestCase.java Wed Apr 23 02:55:00 2008
@@ -0,0 +1,69 @@
+/*
+ * 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.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 ReferenceIncompatibleInterfaceTestCase extends TestCase {
+
+ private CalculatorService calculatorService;
+ private SCANode2 node;
+
+ @Override
+ protected void setUp() throws Exception {
+ SCANode2Factory nodeFactory = SCANode2Factory.newInstance();
+ node = nodeFactory.createSCANode(new File("src/main/resources/ReferenceIncompatibleInterface/Calculator.composite").toURL().toString(),
+ new SCAContribution("TestContribution",
+ new File("src/main/resources/ReferenceIncompatibleInterface").toURL().toString()));
+ node.start();
+ calculatorService = ((SCAClient)node).getService(CalculatorService.class, "CalculatorServiceComponent");
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ 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("ReferenceIncompatibleInterface", problem.getMessageId());
+
+ }
+}
Propchange: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceIncompatibleInterfaceTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceIncompatibleInterfaceTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceIncompatibleMultiplicityTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceIncompatibleMultiplicityTestCase.java?rev=650810&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceIncompatibleMultiplicityTestCase.java (added)
+++ incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceIncompatibleMultiplicityTestCase.java Wed Apr 23 02:55:00 2008
@@ -0,0 +1,69 @@
+/*
+ * 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.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 ReferenceIncompatibleMultiplicityTestCase extends TestCase {
+
+ private CalculatorService calculatorService;
+ private SCANode2 node;
+
+ @Override
+ protected void setUp() throws Exception {
+ SCANode2Factory nodeFactory = SCANode2Factory.newInstance();
+ node = nodeFactory.createSCANode(new File("src/main/resources/ReferenceIncompatibleMultiplicity/Calculator.composite").toURL().toString(),
+ new SCAContribution("TestContribution",
+ new File("src/main/resources/ReferenceIncompatibleMultiplicity").toURL().toString()));
+ node.start();
+ calculatorService = ((SCAClient)node).getService(CalculatorService.class, "CalculatorServiceComponent");
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ 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("ReferenceIncompatibleMultiplicity", problem.getMessageId());
+
+ }
+}
Propchange: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceIncompatibleMultiplicityTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceIncompatibleMultiplicityTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceNotFoundTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceNotFoundTestCase.java?rev=650810&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceNotFoundTestCase.java (added)
+++ incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceNotFoundTestCase.java Wed Apr 23 02:55:00 2008
@@ -0,0 +1,69 @@
+/*
+ * 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.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 ReferenceNotFoundTestCase extends TestCase {
+
+ private CalculatorService calculatorService;
+ private SCANode2 node;
+
+ @Override
+ protected void setUp() throws Exception {
+ SCANode2Factory nodeFactory = SCANode2Factory.newInstance();
+ node = nodeFactory.createSCANode(new File("src/main/resources/ReferenceNotFound/Calculator.composite").toURL().toString(),
+ new SCAContribution("TestContribution",
+ new File("src/main/resources/ReferenceNotFound").toURL().toString()));
+ node.start();
+ calculatorService = ((SCAClient)node).getService(CalculatorService.class, "CalculatorServiceComponent");
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ 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("ReferenceNotFound", problem.getMessageId());
+
+ }
+}
Propchange: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceNotFoundTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceNotFoundTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceWithoutTargetsTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceWithoutTargetsTestCase.java?rev=650810&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceWithoutTargetsTestCase.java (added)
+++ incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceWithoutTargetsTestCase.java Wed Apr 23 02:55:00 2008
@@ -0,0 +1,69 @@
+/*
+ * 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.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 ReferenceWithoutTargetsTestCase extends TestCase {
+
+ private CalculatorService calculatorService;
+ private SCANode2 node;
+
+ @Override
+ protected void setUp() throws Exception {
+ SCANode2Factory nodeFactory = SCANode2Factory.newInstance();
+ node = nodeFactory.createSCANode(new File("src/main/resources/ReferenceWithoutTargets/Calculator.composite").toURL().toString(),
+ new SCAContribution("TestContribution",
+ new File("src/main/resources/ReferenceWithoutTargets").toURL().toString()));
+ node.start();
+ calculatorService = ((SCAClient)node).getService(CalculatorService.class, "CalculatorServiceComponent");
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ 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("ReferenceWithoutTargets", problem.getMessageId());
+
+ }
+}
Propchange: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceWithoutTargetsTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/itest/validation/src/test/java/calculator/ReferenceWithoutTargetsTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
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=650810&r1=650809&r2=650810&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 Wed Apr 23 02:55:00 2008
@@ -353,11 +353,12 @@
// Check that a component property does not override the
// mustSupply attribute
if (!property.isMustSupply() && componentProperty.isMustSupply()) {
- warning("Component property mustSupply attribute incompatible with property: " + component
+ /*warning("Component property mustSupply attribute incompatible with property: " + component
.getName()
+ "/"
+ componentProperty.getName(),
- component);
+ component);*/
+ warning("PropertyMustSupplyIncompatible", component, component.getName().toString(), componentProperty.getName());
}
// Default to the mustSupply attribute specified on the property
@@ -376,19 +377,21 @@
// Check that a value is supplied
if (componentProperty.getValue() == null && property.isMustSupply()) {
- warning("No value configured on a mustSupply property: " + component.getName()
+ /*warning("No value configured on a mustSupply property: " + component.getName()
+ "/"
- + componentProperty.getName(), component);
+ + componentProperty.getName(), component);*/
+ warning("PropertyMustSupplyNull", component, component.getName().toString(), componentProperty.getName());
}
// Check that a a component property does not override the
// many attribute
if (!property.isMany() && componentProperty.isMany()) {
- warning("Component property many attribute incompatible with property: " + component
+ /*warning("Component property many attribute incompatible with property: " + component
.getName()
+ "/"
+ componentProperty.getName(),
- component);
+ component);*/
+ warning("PropertyOverrideManyAttribute", component, component.getName().toString(), componentProperty.getName());
}
// Default to the many attribute defined on the property
@@ -435,9 +438,10 @@
componentReference.setReference(reference);
} else {
if (!componentReference.getName().startsWith("$self$.")) {
- warning("Reference not found for component reference: " + component.getName()
+ /*warning("Reference not found for component reference: " + component.getName()
+ "/"
- + componentReference.getName(), component);
+ + componentReference.getName(), component);*/
+ warning("ReferenceNotFound", component, component.getName().toString(), componentReference.getName());
}
}
}
@@ -465,11 +469,12 @@
if (!ReferenceUtil.isValidMultiplicityOverride(reference.getMultiplicity(),
componentReference
.getMultiplicity())) {
- warning("Component reference multiplicity incompatible with reference multiplicity: " + component
+ /*warning("Component reference multiplicity incompatible with reference multiplicity: " + component
.getName()
+ "/"
+ componentReference.getName(),
- component);
+ component);*/
+ warning("ReferenceIncompatibleMultiplicity", component, component.getName().toString(), componentReference.getName());
}
} else {
componentReference.setMultiplicity(reference.getMultiplicity());
@@ -482,10 +487,11 @@
.getInterfaceContract())) {
if (!interfaceContractMapper.isCompatible(componentReference.getInterfaceContract(),
interfaceContract)) {
- warning("Component reference interface incompatible with reference interface: " + component
+ /*warning("Component reference interface incompatible with reference interface: " + component
.getName()
+ "/"
- + componentReference.getName(), component);
+ + componentReference.getName(), component);*/
+ warning("ReferenceIncompatibleComponentInterface", component, component.getName().toString(), componentReference.getName());
}
}
} else {
@@ -1195,11 +1201,12 @@
continue;
}
if (binding.getName().equals(otherBinding.getName())) {
- warning("Multiple bindings for service " +
+ /*warning("Multiple bindings for service " +
service.getName() +
" have the same binding type and name " +
binding.getName() +
- ". Tuscany SCA can't create unique URIs to differentiate these bindings ", binding);
+ ". Tuscany SCA can't create unique URIs to differentiate these bindings ", binding);*/
+ warning("MultipleBindingsForService", binding, service.getName(), binding.getName());
}
}
}
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=650810&r1=650809&r2=650810&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 Wed Apr 23 02:55:00 2008
@@ -142,7 +142,8 @@
}
}
if (!promoted && !componentReference.isCallback()) {
- warning("No targets for reference: " + componentReference.getName(), composite);
+ /*warning("No targets for reference: " + componentReference.getName(), composite);*/
+ warning("ReferenceWithoutTargets", composite, componentReference.getName());
}
} else {
warning("Too many targets on reference: " + componentReference.getName(), composite);
@@ -205,8 +206,8 @@
* @param message
* @param model
*/
- private void warning(String message, Object model) {
- Problem problem = new ProblemImpl(this.getClass().getName(), "assembly-validation-messages", Severity.WARNING, model, message);
+ 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);
}
@@ -276,7 +277,8 @@
}
} else {
- warning("Promoted component service not found: " + promotedServiceName, composite);
+ /*warning("Promoted component service not found: " + promotedServiceName, composite);*/
+ warning("PromotedServiceNotFound", composite, promotedServiceName);
}
}
}
@@ -339,7 +341,8 @@
}
}
} else {
- warning("Promoted component reference not found: " + componentReferenceName, composite);
+ /*warning("Promoted component reference not found: " + componentReferenceName, composite);*/
+ warning("PromotedReferenceNotFound", composite, componentReferenceName);
}
}
}
@@ -408,11 +411,12 @@
// see if an sca binding is associated with a resolved target or not
componentService.setUnresolved(false);
} else {
- warning("Incompatible interfaces on component reference and target: " + componentReference
+ /*warning("Incompatible interfaces on component reference and target: " + componentReference
.getName()
+ " : "
+ componentService.getName(),
- composite);
+ composite);*/
+ warning("ReferenceIncompatibleInterface", composite, componentReference.getName(), componentService.getName());
}
} else {
// add all the reference bindings into the target so that they
@@ -422,7 +426,8 @@
// The bindings will be cloned back into the reference when the
// target is finally resolved.
- warning("Component reference target not found, it might be a remote service: " + componentService.getName(), composite);
+ /*warning("Component reference target not found, it might be a remote service: " + componentService.getName(), composite);*/
+ warning("ComponentReferenceTargetNotFound", composite, componentService.getName());
}
}
} else if (componentReference.getReference() != null) {
Modified: 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=650810&r1=650809&r2=650810&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/resources/assembly-validation-messages_en.properties (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/resources/assembly-validation-messages_en.properties Wed Apr 23 02:55:00 2008
@@ -28,3 +28,15 @@
DuplicateImplementationPropertyName = Duplicate property name: Component = {0} Property = {1}
DuplicateImplementationReferenceName = Duplicate reference name: Component = {0} Reference = {1}
PropertyNotFound = Property not found for component property: Component = {0} Property = {1}
+PropertyMustSupplyIncompatible = Component property mustSupply attribute incompatible with property: Component = {0} Property = {1}
+PropertyMustSupplyNull = No value configured on a mustSupply property: Component = {0} Property = {1}
+PropertyOverrideManyAttribute = Component property many attribute incompatible with property: Component = {0} Property = {1}
+ReferenceNotFound = Component property many attribute incompatible with property: Component = {0} Reference = {1}
+ReferenceIncompatibleMultiplicity = Component reference multiplicity incompatible with reference multiplicity: Component = {0} Reference = {1}
+ReferenceIncompatibleInterface = Incompatible interfaces on component reference and target: Composite = {0} Reference = {1} Service = {2}
+ReferenceIncompatibleComponentInterface = Component reference interface incompatible with reference interface: Component = {0} Reference = {1}
+MultipleBindingsForService = Multiple bindings for service: Binding = {0} Service = {1} Binding = {2}
+ReferenceWithoutTargets = No targets for reference: Composite = {0} Reference = {1}
+PromotedReferenceNotFound = Promoted component reference not found: Composite = {0} Reference = {1}
+PromotedServiceNotFound = Promoted component service not found: Composite = {0} Service = {1}
+ComponentReferenceTargetNotFound = Component reference target not found, it might be a remote service: Composite = {0} Service = {1}
\ No newline at end of file