[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[stp-commits] r3346 - in org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati: . src/org/eclipse/stp/sca/validation src/org/eclipse/stp/sca/validation/frascati src/org/eclipse/stp/sca/validation/frascati/jbiBinding

Author: vzurczak
Date: 2009-11-04 11:53:25 -0500 (Wed, 04 Nov 2009)
New Revision: 3346

Added:
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/EValidatorAdapter.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/Messages.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/Startup.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/jbiBinding/
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/jbiBinding/OnlyJbiBindings.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/messages.properties
Removed:
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/Context.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/EValidatorAdapter.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/Messages.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/Startup.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/jbiBinding/
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/messages.properties
Modified:
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/.project
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/plugin.xml
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/jbiBinding/JbiBindingAttributesAndModeValidation.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/jbiBinding/JbiBindingInterfaceNotNull.java
Log:
Added a new constraint on the JBI binding
Refactored the plug-in

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/.project
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/.project	2009-10-19 07:07:04 UTC (rev 3345)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/.project	2009-11-04 16:53:25 UTC (rev 3346)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.stp.sca.validation.frascati</name>
+	<name>org.eclipse.stp.sca.validation.frascati.frascati</name>
 	<comment></comment>
 	<projects>
 	</projects>

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/plugin.xml
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/plugin.xml	2009-10-19 07:07:04 UTC (rev 3345)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/plugin.xml	2009-11-04 16:53:25 UTC (rev 3346)
@@ -18,73 +18,85 @@
 <plugin>
 
      <extension point="org.eclipse.ui.startup">
-      <startup class="org.eclipse.stp.sca.validation.Startup"/>
+      <startup class="org.eclipse.stp.sca.validation.frascati.Startup"/>
    </extension>
    
 <!--
    Constraint
    -->
  <extension point="org.eclipse.emf.validation.constraintProviders">
-    <category
-		id="org.eclipse.stp.sca.category"
-		mandatory="true"
-		name="SCA Modeler">   
-		<![CDATA[SCA Modeler]]>
-	</category>		
-    <constraintProvider cache="true">
-         <package namespaceUri="http://frascati.ow2.org"/>
-         <constraints categories="org.eclipse.stp.sca.category">
-            <constraint
-                  lang="Java"
-                  class="org.eclipse.stp.sca.validation.jbiBinding.JbiBindingInterfaceNotNull"
-                  severity="ERROR"
-                  mode="Batch"
-                  name="JBIInterfaceValidation"
-                  id="org.eclipse.stp.sca.JBIInterfaceValidationID"
-                  statusCode="1">
-               <description>The interface name and namespace of a JBI binding can&apos;t be null or empty.
-               </description>
-               <message>
-                  {0}
-               </message>
-               <target class="JBIBinding"/>                                   
-            </constraint>
-            <constraint
-                  class="org.eclipse.stp.sca.validation.jbiBinding.JbiBindingAttributesAndModeValidation"
-                  id="org.eclipse.stp.sca.JBIAttrAndModeValidationID"
-                  lang="Java"
-                  mode="Batch"
-                  name="JBIAttrAndModeValidation"
-                  severity="ERROR"
-                  statusCode="1">
-               <description>
-                  The interface name and namespace of a JBI binding can't be null or empty.
-               </description>
-               <message>
-                  {0}
-               </message>
-               <target
-                     class="JBIBinding">
-               </target>
-            </constraint>
-            <!-- -->
-            <!-- -->
-            <!-- -->
-            <!-- -->
-         </constraints>
-      </constraintProvider>
+    <constraintProvider
+          cache="true"
+          mode="Batch">
+       <package
+             namespaceUri="http://frascati.ow2.org/xmlns/sca/1.1";>
+       </package>
+       <constraints
+             categories="org.eclipse.stp.sca.category">
+          <constraint
+                class="org.eclipse.stp.sca.validation.frascati.jbiBinding.JbiBindingInterfaceNotNull"
+                id="org.eclipse.stp.sca.JBIInterfaceValidationID"
+                lang="Java"
+                mode="Batch"
+                name="JBI bindings interfaces are not null or empty"
+                severity="ERROR"
+                statusCode="1">
+             <description>
+                The interface name and namespace of a JBI binding can't be null or empty.
+             </description>
+             <message>
+                {0}
+             </message>
+             <target
+                   class="JBIBinding">
+             </target>
+          </constraint>
+          <constraint
+                class="org.eclipse.stp.sca.validation.frascati.jbiBinding.JbiBindingAttributesAndModeValidation"
+                id="org.eclipse.stp.sca.JBIAttrAndModeValidationID"
+                lang="Java"
+                mode="Batch"
+                name="JBI bindings attributes are coherent"
+                severity="ERROR"
+                statusCode="1">
+             <description>
+                The interface name and namespace of a JBI binding can't be null or empty.
+             </description>
+             <message>
+                {0}
+             </message>
+             <target
+                   class="JBIBinding">
+             </target>
+          </constraint>
+       </constraints>
+    </constraintProvider>
+    <constraintProvider
+          cache="true">
+       <package
+             namespaceUri="http://www.osoa.org/xmlns/sca/1.0";>
+       </package>
+       <constraints>
+          <constraint
+                class="org.eclipse.stp.sca.validation.frascati.jbiBinding.OnlyJbiBindings"
+                id="org.eclipse.stp.sca.JBIbindingPresenceValidationID"
+                lang="Java"
+                mode="Batch"
+                name="JBI binding somewhere, JBI bindings everywhere"
+                severity="ERROR"
+                statusCode="1">
+             <message>
+                {0}
+             </message>
+             <target
+                   class="Composite">
+             </target>
+             <description>
+                In a composite, there must be either no JBI binding, or only JBI bindings.
+             </description>
+          </constraint></constraints>
+    </constraintProvider>
    </extension>
    
-    <extension
-         point="org.eclipse.emf.validation.constraintBindings">
-      <clientContext
-            default="true"
-            id="org.eclipse.stp.sca.navigation.context">
-         <selector class="org.eclipse.stp.sca.validation.Context"/>
-      </clientContext>
-      <binding
-            context="org.eclipse.stp.sca.navigation.context"
-            category="org.eclipse.stp.sca.category"/>
-   </extension>    
 
 </plugin>

Deleted: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/Context.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/Context.java	2009-10-19 07:07:04 UTC (rev 3345)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/Context.java	2009-11-04 16:53:25 UTC (rev 3346)
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2007-2008-2009 Obeo
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- */
-
-package org.eclipse.stp.sca.validation;
-
-import org.eclipse.emf.validation.model.IClientSelector;
-
-/**
- * Context class is used to select the constraints in a particular domain
- * according to a particular context. It's chosen to verify the constraints in
- * all context.
- * 
- * @author Stephane Drapeau - Obeo
- */
-public class Context implements IClientSelector {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.validation.model.IClientSelector#selects(java.lang.Object)
-	 */
-	public boolean selects(Object object) {
-		return true;
-	}
-
-}

Deleted: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/EValidatorAdapter.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/EValidatorAdapter.java	2009-10-19 07:07:04 UTC (rev 3345)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/EValidatorAdapter.java	2009-11-04 16:53:25 UTC (rev 3346)
@@ -1,173 +0,0 @@
-/*
- * Copyright (c) 2007-2008-2009 Obeo
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- */
-package org.eclipse.stp.sca.validation;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.common.util.BasicDiagnostic;
-import org.eclipse.emf.common.util.DiagnosticChain;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EObjectValidator;
-import org.eclipse.emf.validation.model.EvaluationMode;
-import org.eclipse.emf.validation.model.IConstraintStatus;
-import org.eclipse.emf.validation.service.IBatchValidator;
-import org.eclipse.emf.validation.service.ModelValidationService;
-
-/**
- * An adapter that plugs the EMF Model Validation Service API into the
- * {@link org.eclipse.emf.ecore.EValidator} API.
- * 
- * @author Stephane Drapeau - Obeo
- */
-public class EValidatorAdapter extends EObjectValidator {
-
-	/**
-	 * Model Validation Service interface for batch validation of EMF elements.
-	 */
-	private final IBatchValidator batchValidator;
-
-	/**
-	 * Initializes me.
-	 */
-	public EValidatorAdapter() {
-		super();
-
-		batchValidator = (IBatchValidator) ModelValidationService.getInstance()
-				.newValidator(EvaluationMode.BATCH);
-		batchValidator.setIncludeLiveConstraints(true);
-		batchValidator.setReportSuccesses(false);
-	}
-
-	@Override
-	public boolean validate(EObject eObject, DiagnosticChain diagnostics,
-			Map context) {
-		return validate(eObject.eClass(), eObject, diagnostics, context);
-	}
-
-	/**
-	 * Implements validation by delegation to the EMF validation framework.
-	 */
-	@Override
-	public boolean validate(EClass eClass, EObject eObject,
-			DiagnosticChain diagnostics, Map context) {
-		// first, do whatever the basic EcoreValidator does
-		super.validate(eClass, eObject, diagnostics, context);
-
-		IStatus status = Status.OK_STATUS;
-
-		// no point in validating if we can't report results
-		if (diagnostics != null) {
-			// if EMF Mode Validation Service already covered the sub-tree,
-			// which it does for efficient computation and error reporting,
-			// then don't repeat (the Diagnostician does the recursion
-			// externally). If there is no context map, then we can't
-			// help it
-			if (!hasProcessed(eObject, context)) {
-				status = batchValidator.validate(eObject,
-						new NullProgressMonitor());
-
-				processed(eObject, context, status);
-
-				appendDiagnostics(status, diagnostics);
-			}
-		}
-
-		return status.isOK();
-	}
-
-	/**
-	 * Direct validation of {@link EDataType}s is not supported by the EMF
-	 * validation framework; they are validated indirectly via the
-	 * {@link EObject}s that hold their values.
-	 */
-	@Override
-	public boolean validate(EDataType eDataType, Object value,
-			DiagnosticChain diagnostics, Map context) {
-		return super.validate(eDataType, value, diagnostics, context);
-	}
-
-	/**
-	 * If we have a context map, record this object's <code>status</code> in
-	 * it so that we will know later that we have processed it and its sub-tree.
-	 * 
-	 * @param eObject
-	 *            an element that we have validated
-	 * @param context
-	 *            the context (may be <code>null</code>)
-	 * @param status
-	 *            the element's validation status
-	 */
-	private void processed(EObject eObject, Map context, IStatus status) {
-		if (context != null) {
-			context.put(eObject, status);
-		}
-	}
-
-	/**
-	 * Determines whether we have processed this <code>eObject</code> before,
-	 * by automatic recursion of the EMF Model Validation Service. This is only
-	 * possible if we do, indeed, have a context.
-	 * 
-	 * @param eObject
-	 *            an element to be validated (we hope not)
-	 * @param context
-	 *            the context (may be <code>null</code>)
-	 * @return <code>true</code> if the context is not <code>null</code> and
-	 *         the <code>eObject</code> or one of its containers has already
-	 *         been validated; <code>false</code>, otherwise
-	 */
-	private boolean hasProcessed(EObject eObject, Map context) {
-		boolean result = false;
-
-		if (context != null) {
-			// this is O(NlogN) but there's no helping it
-			while (eObject != null) {
-				if (context.containsKey(eObject)) {
-					result = true;
-					eObject = null;
-				} else {
-					eObject = eObject.eContainer();
-				}
-			}
-		}
-
-		return result;
-	}
-
-	/**
-	 * Converts a status result from the EMF validation service to diagnostics.
-	 * 
-	 * @param status
-	 *            the EMF validation service's status result
-	 * @param diagnostics
-	 *            a diagnostic chain to accumulate results on
-	 */
-	private void appendDiagnostics(IStatus status, DiagnosticChain diagnostics) {
-		if (status.isMultiStatus()) {
-			IStatus[] children = status.getChildren();
-
-			for (int i = 0; i < children.length; i++) {
-				appendDiagnostics(children[i], diagnostics);
-			}
-		} else if (status instanceof IConstraintStatus) {
-			diagnostics.add(new BasicDiagnostic(status.getSeverity(), status
-					.getPlugin(), status.getCode(), status.getMessage(),
-					((IConstraintStatus) status).getResultLocus().toArray()));
-		}
-	}
-
-}

Deleted: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/Messages.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/Messages.java	2009-10-19 07:07:04 UTC (rev 3345)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/Messages.java	2009-11-04 16:53:25 UTC (rev 3346)
@@ -1,38 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2009, EBM WebSourcing
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     EBM WebSourcing - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.stp.sca.validation;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.stp.sca.validation.messages"; //$NON-NLS-1$
-	public static String JbiBindingAttributesAndModeValidation_10;
-	public static String JbiBindingAttributesAndModeValidation_13;
-	public static String JbiBindingAttributesAndModeValidation_14;
-	public static String JbiBindingAttributesAndModeValidation_3;
-	public static String JbiBindingAttributesAndModeValidation_5;
-	public static String JbiBindingAttributesAndModeValidation_7;
-	public static String JbiBindingAttributesAndModeValidation_8;
-	public static String JbiBindingAttributesAndModeValidation_9;
-	public static String JbiBindingInterfaceNotNull_6;
-	public static String JbiBindingInterfaceNotNull_7;
-	
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages( BUNDLE_NAME, Messages.class );
-	}
-
-	private Messages() {
-		// nothing
-	}
-}

Deleted: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/Startup.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/Startup.java	2009-10-19 07:07:04 UTC (rev 3345)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/Startup.java	2009-11-04 16:53:25 UTC (rev 3346)
@@ -1,40 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2009, EBM WebSourcing
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     EBM WebSourcing - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.stp.sca.validation;
-
-import org.eclipse.emf.ecore.EValidator;
-import org.eclipse.stp.sca.domainmodel.frascati.FrascatiPackage;
-import org.eclipse.ui.IStartup;
-
-/**
- * This class installs an EMF <code>EValidator</code> on the Library package
- * when we start up. This validator adapts EMF's <code>EValidator</code> API
- * to the EMF Model Validation Service API.
- * 
- * @author Vincent Zurczak - EBM WebSourcing
- */
-public class Startup implements IStartup {
-
-	/**
-	 * Constructor.
-	 */
-	public Startup() {
-		super();
-	}
-
-	/**
-	 * Install the validator.
-	 */
-	public void earlyStartup() {
-		EValidator.Registry.INSTANCE.put(FrascatiPackage.eINSTANCE, new EValidatorAdapter());
-	}
-}

Copied: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/EValidatorAdapter.java (from rev 3341, org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/EValidatorAdapter.java)
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/EValidatorAdapter.java	                        (rev 0)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/EValidatorAdapter.java	2009-11-04 16:53:25 UTC (rev 3346)
@@ -0,0 +1,175 @@
+/*
+ * Copyright (c) 2007-2008-2009 Obeo
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Obeo - initial API and implementation
+ */
+package org.eclipse.stp.sca.validation.frascati;
+
+import java.util.Map;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EObjectValidator;
+import org.eclipse.emf.validation.model.EvaluationMode;
+import org.eclipse.emf.validation.model.IConstraintStatus;
+import org.eclipse.emf.validation.service.IBatchValidator;
+import org.eclipse.emf.validation.service.ModelValidationService;
+
+/**
+ * An adapter that plugs the EMF Model Validation Service API into the
+ * {@link org.eclipse.emf.ecore.EValidator} API.
+ * 
+ * @author Stephane Drapeau - Obeo
+ */
+public class EValidatorAdapter extends EObjectValidator {
+
+	/**
+	 * Model Validation Service interface for batch validation of EMF elements.
+	 */
+	private final IBatchValidator batchValidator;
+
+	/**
+	 * Initializes me.
+	 */
+	public EValidatorAdapter() {
+		super();
+
+		this.batchValidator = (IBatchValidator) ModelValidationService.getInstance()
+		.newValidator(EvaluationMode.BATCH);
+		this.batchValidator.setIncludeLiveConstraints(true);
+		this.batchValidator.setReportSuccesses(false);
+	}
+
+	@Override
+	public boolean validate(EObject eObject, DiagnosticChain diagnostics,
+			Map context) {
+		return validate(eObject.eClass(), eObject, diagnostics, context);
+	}
+
+	/**
+	 * Implements validation by delegation to the EMF validation framework.
+	 */
+	@SuppressWarnings( "unchecked" )
+	@Override
+	public boolean validate(EClass eClass, EObject eObject,
+			DiagnosticChain diagnostics, Map context) {
+		// first, do whatever the basic EcoreValidator does
+		super.validate(eClass, eObject, diagnostics, context);
+
+		IStatus status = Status.OK_STATUS;
+
+		// no point in validating if we can't report results
+		if (diagnostics != null) {
+			// if EMF Mode Validation Service already covered the sub-tree,
+			// which it does for efficient computation and error reporting,
+			// then don't repeat (the Diagnostician does the recursion
+			// externally). If there is no context map, then we can't
+			// help it
+			if (!hasProcessed(eObject, context)) {
+				status = this.batchValidator.validate(eObject,
+						new NullProgressMonitor());
+
+				processed(eObject, context, status);
+				appendDiagnostics(status, diagnostics);
+			}
+		}
+
+		return status.isOK();
+	}
+
+	/**
+	 * Direct validation of {@link EDataType}s is not supported by the EMF
+	 * validation framework; they are validated indirectly via the
+	 * {@link EObject}s that hold their values.
+	 */
+	@SuppressWarnings( "unchecked" )
+	@Override
+	public boolean validate(EDataType eDataType, Object value,
+			DiagnosticChain diagnostics, Map context) {
+		return super.validate(eDataType, value, diagnostics, context);
+	}
+
+	/**
+	 * If we have a context map, record this object's <code>status</code> in
+	 * it so that we will know later that we have processed it and its sub-tree.
+	 * 
+	 * @param eObject
+	 *            an element that we have validated
+	 * @param context
+	 *            the context (may be <code>null</code>)
+	 * @param status
+	 *            the element's validation status
+	 */
+	private void processed(EObject eObject, Map context, IStatus status) {
+		if (context != null) {
+			context.put(eObject, status);
+		}
+	}
+
+	/**
+	 * Determines whether we have processed this <code>eObject</code> before,
+	 * by automatic recursion of the EMF Model Validation Service. This is only
+	 * possible if we do, indeed, have a context.
+	 * 
+	 * @param eObject
+	 *            an element to be validated (we hope not)
+	 * @param context
+	 *            the context (may be <code>null</code>)
+	 * @return <code>true</code> if the context is not <code>null</code> and
+	 *         the <code>eObject</code> or one of its containers has already
+	 *         been validated; <code>false</code>, otherwise
+	 */
+	private boolean hasProcessed(EObject eObject, Map context) {
+		boolean result = false;
+
+		if (context != null) {
+			// this is O(NlogN) but there's no helping it
+			while (eObject != null) {
+				if (context.containsKey(eObject)) {
+					result = true;
+					eObject = null;
+				} else {
+					eObject = eObject.eContainer();
+				}
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	 * Converts a status result from the EMF validation service to diagnostics.
+	 * 
+	 * @param status
+	 *            the EMF validation service's status result
+	 * @param diagnostics
+	 *            a diagnostic chain to accumulate results on
+	 */
+	private void appendDiagnostics(IStatus status, DiagnosticChain diagnostics) {
+
+		if( status.isMultiStatus()) {
+			IStatus[] children = status.getChildren();
+
+			for( IStatus element : children ) {
+				appendDiagnostics(element, diagnostics);
+			}
+		} else if (status instanceof IConstraintStatus) {
+			diagnostics.add(new BasicDiagnostic(status.getSeverity(), status
+					.getPlugin(), status.getCode(), status.getMessage(),
+					((IConstraintStatus) status).getResultLocus().toArray()));
+		}
+	}
+
+}

Copied: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/Messages.java (from rev 3341, org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/Messages.java)
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/Messages.java	                        (rev 0)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/Messages.java	2009-11-04 16:53:25 UTC (rev 3346)
@@ -0,0 +1,43 @@
+/******************************************************************************
+ * Copyright (c) 2009, EBM WebSourcing
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     EBM WebSourcing - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.stp.sca.validation.frascati;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+
+	private static final String BUNDLE_NAME = "org.eclipse.stp.sca.validation.frascati.messages"; //$NON-NLS-1$
+
+	public static String JbiBindingAttributesAndModeValidation_10;
+	public static String JbiBindingAttributesAndModeValidation_13;
+	public static String JbiBindingAttributesAndModeValidation_14;
+	public static String JbiBindingAttributesAndModeValidation_3;
+	public static String JbiBindingAttributesAndModeValidation_5;
+	public static String JbiBindingAttributesAndModeValidation_7;
+	public static String JbiBindingAttributesAndModeValidation_8;
+	public static String JbiBindingAttributesAndModeValidation_9;
+
+	public static String JbiBindingInterfaceNotNull_6;
+	public static String JbiBindingInterfaceNotNull_7;
+
+	public static String OnlyJbiBindings_0;
+	public static String OnlyJbiBindings_1;
+
+	static {
+		// initialize resource bundle
+		NLS.initializeMessages( BUNDLE_NAME, Messages.class );
+	}
+
+	private Messages() {
+		// nothing
+	}
+}

Copied: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/Startup.java (from rev 3341, org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/Startup.java)
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/Startup.java	                        (rev 0)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/Startup.java	2009-11-04 16:53:25 UTC (rev 3346)
@@ -0,0 +1,40 @@
+/******************************************************************************
+ * Copyright (c) 2009, EBM WebSourcing
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     EBM WebSourcing - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.stp.sca.validation.frascati;
+
+import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.stp.sca.domainmodel.frascati.FrascatiPackage;
+import org.eclipse.ui.IStartup;
+
+/**
+ * This class installs an EMF <code>EValidator</code> on the Library package
+ * when we start up. This validator adapts EMF's <code>EValidator</code> API
+ * to the EMF Model Validation Service API.
+ * 
+ * @author Vincent Zurczak - EBM WebSourcing
+ */
+public class Startup implements IStartup {
+
+	/**
+	 * Constructor.
+	 */
+	public Startup() {
+		super();
+	}
+
+	/**
+	 * Install the validator.
+	 */
+	public void earlyStartup() {
+		EValidator.Registry.INSTANCE.put( FrascatiPackage.eINSTANCE, new EValidatorAdapter());
+	}
+}

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/jbiBinding/JbiBindingAttributesAndModeValidation.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/jbiBinding/JbiBindingAttributesAndModeValidation.java	2009-09-21 10:29:28 UTC (rev 3341)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/jbiBinding/JbiBindingAttributesAndModeValidation.java	2009-11-04 16:53:25 UTC (rev 3346)
@@ -9,18 +9,19 @@
  *     EBM WebSourcing - initial API and implementation
  *******************************************************************************/
 
-package org.eclipse.stp.sca.validation.jbiBinding;
+package org.eclipse.stp.sca.validation.frascati.jbiBinding;
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.validation.AbstractModelConstraint;
 import org.eclipse.emf.validation.EMFEventType;
 import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.stp.sca.BaseReference;
 import org.eclipse.stp.sca.BaseService;
 import org.eclipse.stp.sca.Component;
 import org.eclipse.stp.sca.domainmodel.frascati.JBIBinding;
-import org.eclipse.stp.sca.validation.Messages;
+import org.eclipse.stp.sca.validation.frascati.Messages;
 
 /**
  * A JBI binding is in provide mode only when associated with an SCA service, and in consume only with a reference.
@@ -43,7 +44,7 @@
 	 * @return null if the validation succeeded, the error message otherwise
 	 */
 	private String check( JBIBinding jbiBinding ) {
-		
+
 		String location;
 		EObject container = jbiBinding.eContainer();
 		String suffix = ""; //$NON-NLS-1$
@@ -51,46 +52,50 @@
 			suffix = ((Component) container.eContainer()).getName() + "/"; //$NON-NLS-1$
 
 		if( container instanceof BaseService ) {
-			location = Messages.JbiBindingAttributesAndModeValidation_3 + suffix + ((BaseService) container).getName() + "'."; //$NON-NLS-1$
+			location = NLS.bind(
+					Messages.JbiBindingAttributesAndModeValidation_3,
+					suffix + ((BaseService) container).getName());
 			return checkInProvide( jbiBinding, location );
 		}
-		
+
 		else if( container instanceof BaseReference ) {
-			location = Messages.JbiBindingAttributesAndModeValidation_5 + suffix + ((BaseReference) container).getName() + "'."; //$NON-NLS-1$
+			location = NLS.bind(
+					Messages.JbiBindingAttributesAndModeValidation_5,
+					suffix + ((BaseReference) container).getName());
 			return checkInConsume( jbiBinding, location );
-		}			
-		
+		}
+
 		return null;
 	}
-	
-	
+
+
 	/**
 	 * @param jbiBinding
 	 * @param location
 	 * @return null if the validation succeeded, the error message otherwise
 	 */
 	private String checkInConsume( JBIBinding jbiBinding, String location ) {
-		
+
 		boolean serviceIsEmpty = isEmpty( jbiBinding.getServiceName());
 		boolean serviceNsIsEmpty = isEmpty( jbiBinding.getServiceNamespace());
 		boolean endpointIsEmpty = isEmpty( jbiBinding.getEndpointName());
-		
+
 		if( serviceIsEmpty && !serviceNsIsEmpty )
 			return Messages.JbiBindingAttributesAndModeValidation_7 + location;
-		
+
 		if( !serviceIsEmpty && serviceNsIsEmpty )
 			return Messages.JbiBindingAttributesAndModeValidation_8 + location;
-			
-		if( serviceIsEmpty && !endpointIsEmpty ) 			
+
+		if( serviceIsEmpty && !endpointIsEmpty )
 			return Messages.JbiBindingAttributesAndModeValidation_9 + location;
-		
-		if( !serviceIsEmpty && endpointIsEmpty ) 			
+
+		if( !serviceIsEmpty && endpointIsEmpty )
 			return Messages.JbiBindingAttributesAndModeValidation_10 + location;
-		
+
 		return null;
 	}
-	
-	
+
+
 	/**
 	 * @param string
 	 * @return
@@ -98,31 +103,31 @@
 	private boolean isEmpty( String string ) {
 		return string == null || string.trim().length() == 0;
 	}
-	
-	
+
+
 	/**
 	 * @param jbiBinding
 	 * @param location
 	 * @return null if the validation succeeded, the error message otherwise
 	 */
 	private String checkInProvide( JBIBinding jbiBinding, String location ) {
-		
-		if( isEmpty( jbiBinding.getServiceName())) 			
+
+		if( isEmpty( jbiBinding.getServiceName()))
 			return Messages.JbiBindingAttributesAndModeValidation_7 + location;
-	
-		if( isEmpty( jbiBinding.getServiceNamespace())) 			
+
+		if( isEmpty( jbiBinding.getServiceNamespace()))
 			return Messages.JbiBindingAttributesAndModeValidation_8 + location;
-		
-		if( isEmpty( jbiBinding.getEndpointName())) 			
+
+		if( isEmpty( jbiBinding.getEndpointName()))
 			return Messages.JbiBindingAttributesAndModeValidation_13 + location;
-		
+
 		if( isEmpty( jbiBinding.getWsdl()))
 			return Messages.JbiBindingAttributesAndModeValidation_14 + location;
-		
+
 		return null;
 	}
-	
 
+
 	/*
 	 * (non-Javadoc)
 	 * @see org.eclipse.emf.validation.AbstractModelConstraint
@@ -130,15 +135,15 @@
 	 */
 	@Override
 	public IStatus validate( IValidationContext ctx ) {
-		
+
 		EObject objectToCheck = ctx.getTarget();
 		EMFEventType typeEvenement = ctx.getEventType();
 		if( typeEvenement == EMFEventType.NULL ) {
-			
+
 			if( objectToCheck instanceof JBIBinding ) {
 				String errorMsg = check((JBIBinding) objectToCheck);
 				if( errorMsg != null )
-					return ctx.createFailureStatus( new Object[] { errorMsg });
+					return ctx.createFailureStatus( errorMsg );
 			}
 		}
 		return ctx.createSuccessStatus();

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/jbiBinding/JbiBindingInterfaceNotNull.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/jbiBinding/JbiBindingInterfaceNotNull.java	2009-09-21 10:29:28 UTC (rev 3341)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/jbiBinding/JbiBindingInterfaceNotNull.java	2009-11-04 16:53:25 UTC (rev 3346)
@@ -9,7 +9,7 @@
  *     EBM WebSourcing - initial API and implementation
  *******************************************************************************/
 
-package org.eclipse.stp.sca.validation.jbiBinding;
+package org.eclipse.stp.sca.validation.frascati.jbiBinding;
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.emf.ecore.EObject;
@@ -21,10 +21,10 @@
 import org.eclipse.stp.sca.BaseService;
 import org.eclipse.stp.sca.Component;
 import org.eclipse.stp.sca.domainmodel.frascati.JBIBinding;
-import org.eclipse.stp.sca.validation.Messages;
+import org.eclipse.stp.sca.validation.frascati.Messages;
 
 /**
- * This constraint checks if the interface attributes of a JBI binding are not null. 
+ * This constraint checks if the interface attributes of a JBI binding are not null.
  * @author Vincent Zurczak - EBM WebSourcing
  */
 public class JbiBindingInterfaceNotNull extends AbstractModelConstraint {
@@ -34,31 +34,31 @@
 	 * @return null if the validation succeeded, the error message otherwise.
 	 */
 	private String check( JBIBinding jbiBinding ) {
-		
+
 		String location;
 		EObject container = jbiBinding.eContainer();
-		
+
 		String prefix = ""; //$NON-NLS-1$
 		if( container.eContainer() instanceof Component )
 			prefix = ((Component) container.eContainer()).getName() + "/"; //$NON-NLS-1$
-		
+
 		if( container instanceof BaseService )
-			location = NLS.bind( 
+			location = NLS.bind(
 					Messages.JbiBindingAttributesAndModeValidation_3,
-					new Object[] { prefix, ((BaseService) container).getName()});
-		else 
-			location = NLS.bind( 
+					prefix + ((BaseService) container).getName());
+		else
+			location = NLS.bind(
 					Messages.JbiBindingAttributesAndModeValidation_5,
-					new Object[] { prefix, ((BaseReference) container).getName()});
-		
+					prefix + ((BaseReference) container).getName());
+
 		if( jbiBinding.getInterfaceName() == null
-				|| jbiBinding.getInterfaceName().trim().length() == 0 ) 			
+				|| jbiBinding.getInterfaceName().trim().length() == 0 )
 			return Messages.JbiBindingInterfaceNotNull_6 + location;
-	
+
 		if( jbiBinding.getInterfaceNamespace() == null
-				|| jbiBinding.getInterfaceNamespace().trim().length() == 0 ) 			
+				|| jbiBinding.getInterfaceNamespace().trim().length() == 0 )
 			return Messages.JbiBindingInterfaceNotNull_7 + location;
-		
+
 		return null;
 	}
 
@@ -69,15 +69,15 @@
 	 */
 	@Override
 	public IStatus validate( IValidationContext ctx ) {
-		
+
 		EObject objectToCheck = ctx.getTarget();
 		EMFEventType typeEvenement = ctx.getEventType();
 		if( typeEvenement == EMFEventType.NULL ) {
-			
+
 			if( objectToCheck instanceof JBIBinding ) {
 				String errorMsg = check((JBIBinding) objectToCheck);
 				if( errorMsg != null )
-					return ctx.createFailureStatus( new Object[] { errorMsg });
+					return ctx.createFailureStatus( errorMsg );
 			}
 		}
 		return ctx.createSuccessStatus();

Added: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/jbiBinding/OnlyJbiBindings.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/jbiBinding/OnlyJbiBindings.java	                        (rev 0)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/jbiBinding/OnlyJbiBindings.java	2009-11-04 16:53:25 UTC (rev 3346)
@@ -0,0 +1,161 @@
+/******************************************************************************
+ * Copyright (c) 2009, EBM WebSourcing
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     EBM WebSourcing - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.stp.sca.validation.frascati.jbiBinding;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.EMFEventType;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.stp.sca.BaseReference;
+import org.eclipse.stp.sca.BaseService;
+import org.eclipse.stp.sca.Binding;
+import org.eclipse.stp.sca.Component;
+import org.eclipse.stp.sca.ComponentReference;
+import org.eclipse.stp.sca.ComponentService;
+import org.eclipse.stp.sca.Composite;
+import org.eclipse.stp.sca.Reference;
+import org.eclipse.stp.sca.Service;
+import org.eclipse.stp.sca.domainmodel.frascati.JBIBinding;
+import org.eclipse.stp.sca.validation.frascati.Messages;
+
+/**
+ * This constraint checks that a composite with JBI binding only has JBI bindings.
+ * @author Vincent Zurczak - EBM WebSourcing
+ */
+public class OnlyJbiBindings extends AbstractModelConstraint {
+
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.emf.validation.AbstractModelConstraint
+	 * #validate(org.eclipse.emf.validation.IValidationContext)
+	 */
+	@Override
+	public IStatus validate( IValidationContext ctx ) {
+
+		IStatus status = ctx.createSuccessStatus();
+		EObject objectToCheck = ctx.getTarget();
+		if( ctx.getEventType() == EMFEventType.NULL && objectToCheck instanceof Composite )
+			status = check((Composite) objectToCheck, ctx );
+
+		return status;
+	}
+
+
+	/**
+	 * Checks that in the composite, there is either no JBI binding or only JBI bindings.
+	 * <p>
+	 * Elements from included composites should be retrieved by the model
+	 * when parsing the root composite.
+	 * </p>
+	 * 
+	 * @param composite
+	 * @param ctx
+	 * @return
+	 * FIXME: we do not need to get all the invalid bindings. Simplify the check.
+	 */
+	private IStatus check( Composite composite, IValidationContext ctx ) {
+
+		boolean hasJbiBindng = false;
+		List<BaseService> baseServices = new ArrayList<BaseService> ();
+		List<BaseReference> baseReferences = new ArrayList<BaseReference> ();
+
+		// Composite services
+		if( composite.getService() != null ) {
+			for( int i=0; i<composite.getService().size(); i++ ) {
+				Service service = composite.getService().get( i );
+				if( service.getBinding() == null )
+					continue;
+
+				for( int j=0; j<service.getBinding().size(); j++ ) {
+					Binding binding = service.getBinding().get( i );
+					if( binding instanceof JBIBinding )
+						hasJbiBindng = true;
+					else if( hasJbiBindng )
+						baseServices.add( service );
+				}
+
+			}
+		}
+
+		// Composite references
+		if( composite.getReference() != null ) {
+			for( int i=0; i<composite.getReference().size(); i++ ) {
+				Reference reference = composite.getReference().get( i );
+				if( reference.getBinding() == null )
+					continue;
+
+				for( int j=0; j<reference.getBinding().size(); j++ ) {
+					Binding binding = reference.getBinding().get( i );
+					if( binding instanceof JBIBinding )
+						hasJbiBindng = true;
+					else if( hasJbiBindng )
+						baseReferences.add( reference );
+				}
+			}
+		}
+
+		// Component elements
+		if( composite.getComponent() != null ) {
+			for( int i=0; i<composite.getComponent().size(); i++ ) {
+				Component component = composite.getComponent().get( i );
+
+				// Component services
+				if( component.getService() != null ) {
+					for( int j=0; j<component.getService().size(); j++ ) {
+						ComponentService service = component.getService().get( j );
+						if( service.getBinding() == null )
+							continue;
+
+						for( int k=0; k<service.getBinding().size(); k++ ) {
+							Binding binding = service.getBinding().get( k );
+							if( binding instanceof JBIBinding )
+								hasJbiBindng = true;
+							else if( hasJbiBindng )
+								baseServices.add( service );
+						}
+					}
+				}
+
+				// Component references
+				if( component.getReference() != null ) {
+					for( int j=0; j<component.getReference().size(); j++ ) {
+						ComponentReference reference = component.getReference().get( j );
+						if( reference.getBinding() == null )
+							continue;
+
+						for( int k=0; k<reference.getBinding().size(); k++ ) {
+							Binding binding = reference.getBinding().get( k );
+							if( binding instanceof JBIBinding )
+								hasJbiBindng = true;
+							else if( hasJbiBindng )
+								baseReferences.add( reference );
+						}
+					}
+				}
+			}
+		}
+
+		// Create the result
+		if( ! baseServices.isEmpty() || ! baseReferences.isEmpty()) {
+			String errorMsg = Messages.OnlyJbiBindings_0 + Messages.OnlyJbiBindings_1;
+			return ctx.createFailureStatus( errorMsg );
+		}
+
+		// Return null if everything is fine
+		return ctx.createSuccessStatus();
+	}
+}

Copied: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/messages.properties (from rev 3341, org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/messages.properties)
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/messages.properties	                        (rev 0)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/frascati/messages.properties	2009-11-04 16:53:25 UTC (rev 3346)
@@ -0,0 +1,28 @@
+# <copyright>
+#  Copyright (c) 2009, EBM WebSourcing
+#
+#  All rights reserved. This program and the accompanying materials
+#  are made available under the terms of the Eclipse Public License v1.0
+#  which accompanies this distribution, and is available at
+#  http://www.eclipse.org/legal/epl-v10.html
+# 
+#  Contributors:
+#     EBM WebSourcing - initial API and implementation
+# </copyright>
+#
+#
+
+JbiBindingAttributesAndModeValidation_10=The JBI end-point name must be specified (or let the service name empty)  
+JbiBindingAttributesAndModeValidation_13=The JBI end-point name must be specified 
+JbiBindingAttributesAndModeValidation_14=The JBI WSDL attribute must be specified 
+JbiBindingAttributesAndModeValidation_3=in the service "{0}".
+JbiBindingAttributesAndModeValidation_5=in the reference "{0}".
+JbiBindingAttributesAndModeValidation_7=The JBI service name must be specified 
+JbiBindingAttributesAndModeValidation_8=The JBI service namespace must be specified 
+JbiBindingAttributesAndModeValidation_9=The JBI service name must be specified (or let the end-point name empty)   
+
+JbiBindingInterfaceNotNull_6=The JBI interface name must be specified 
+JbiBindingInterfaceNotNull_7=The JBI interface namespace must be specified 
+
+OnlyJbiBindings_0=A JBI binding was found in the composite, but bindings from other types were found. 
+OnlyJbiBindings_1=The JBI binding is expected to run in a specific environment (Petals) and is incompatible with other bindings.

Deleted: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/messages.properties
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/messages.properties	2009-10-19 07:07:04 UTC (rev 3345)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.validation.frascati/src/org/eclipse/stp/sca/validation/messages.properties	2009-11-04 16:53:25 UTC (rev 3346)
@@ -1,24 +0,0 @@
-# <copyright>
-#  Copyright (c) 2009, EBM WebSourcing
-#
-#  All rights reserved. This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License v1.0
-#  which accompanies this distribution, and is available at
-#  http://www.eclipse.org/legal/epl-v10.html
-# 
-#  Contributors:
-#     EBM WebSourcing - initial API and implementation
-# </copyright>
-#
-#
-
-JbiBindingAttributesAndModeValidation_10=The JBI end-point name must be specified (or let the service name empty)  
-JbiBindingAttributesAndModeValidation_13=The JBI end-point name must be specified 
-JbiBindingAttributesAndModeValidation_14=The JBI WSDL attribute must be specified 
-JbiBindingAttributesAndModeValidation_3=in the service "{0}{1}".
-JbiBindingAttributesAndModeValidation_5=in the reference "{0}{1}".
-JbiBindingAttributesAndModeValidation_7=The JBI service name must be specified 
-JbiBindingAttributesAndModeValidation_8=The JBI service namespace must be specified 
-JbiBindingAttributesAndModeValidation_9=The JBI service name must be specified (or let the end-point name empty)   
-JbiBindingInterfaceNotNull_6=The JBI interface name must be specified 
-JbiBindingInterfaceNotNull_7=The JBI interface namespace must be specified