initial check-in
diff --git a/modeling/features/org.eclipse.pde.ds.test-feature/.project b/modeling/features/org.eclipse.pde.ds.test-feature/.project
new file mode 100644
index 0000000..8f4e460
--- /dev/null
+++ b/modeling/features/org.eclipse.pde.ds.test-feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.pde.ds.test-feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/modeling/features/org.eclipse.pde.ds.test-feature/build.properties b/modeling/features/org.eclipse.pde.ds.test-feature/build.properties
new file mode 100644
index 0000000..64f93a9
--- /dev/null
+++ b/modeling/features/org.eclipse.pde.ds.test-feature/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/modeling/features/org.eclipse.pde.ds.test-feature/feature.xml b/modeling/features/org.eclipse.pde.ds.test-feature/feature.xml
new file mode 100644
index 0000000..3749b73
--- /dev/null
+++ b/modeling/features/org.eclipse.pde.ds.test-feature/feature.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.pde.ds.test"
+      label="PDE DS Incubator (Modeling) Tests"
+      version="0.1.0.qualifier">
+
+   <description url="http://www.example.com/description">
+      [Enter Feature Description here.]
+   </description>
+
+   <copyright url="http://www.example.com/copyright">
+      [Enter Copyright Description here.]
+   </copyright>
+
+   <license url="http://www.example.com/license">
+      [Enter License Description here.]
+   </license>
+
+   <plugin
+         id="org.eclipse.test"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
+
+   <plugin
+         id="org.eclipse.ant.optional.junit"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         fragment="true"/>
+
+   <plugin
+         id="org.eclipse.pde.ds.tests"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/.classpath b/modeling/tests/org.eclipse.pde.ds.tests/.classpath
new file mode 100644
index 0000000..121e527
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/.project b/modeling/tests/org.eclipse.pde.ds.tests/.project
new file mode 100644
index 0000000..02fca42
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.pde.ds.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/META-INF/MANIFEST.MF b/modeling/tests/org.eclipse.pde.ds.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..8cd7c4d
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.pde.ds.tests;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.pde.ds.scr.tests
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.pde.ds;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.junit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/build.properties b/modeling/tests/org.eclipse.pde.ds.tests/build.properties
new file mode 100644
index 0000000..a9d414e
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/build.properties
@@ -0,0 +1,18 @@
+# Copyright (c) 2009 Anyware Technologies and others.
+# 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:
+#     Anyware Technologies - initial API and implementation
+#
+# $Id$
+
+bin.includes = .,\
+               META-INF/,\
+               plugin.properties,\
+               test.xml
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/plugin.properties b/modeling/tests/org.eclipse.pde.ds.tests/plugin.properties
new file mode 100644
index 0000000..160696c
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/plugin.properties
@@ -0,0 +1,13 @@
+# Copyright (c) 2009 Anyware Technologies and others.
+# 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:
+#     Anyware Technologies - initial API and implementation
+#
+# $Id$
+
+pluginName = Scr Tests
+providerName = www.example.org
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/AllTests.java b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/AllTests.java
new file mode 100644
index 0000000..d806f8c
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/AllTests.java
@@ -0,0 +1,24 @@
+package org.eclipse.pde.ds.scr.tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllTests {
+
+	public static Test suite() {
+		TestSuite suite = new TestSuite("Test for org.eclipse.pde.ds.scr.tests");
+		//$JUnit-BEGIN$
+		suite.addTestSuite(PropertiesTest.class);
+		suite.addTestSuite(PropertyTest.class);
+		suite.addTestSuite(ProvideTest.class);
+		suite.addTestSuite(ComponentTest.class);
+		suite.addTest(ScrTests.suite());
+		suite.addTestSuite(ImplementationTest.class);
+		suite.addTestSuite(ServiceTest.class);
+		suite.addTestSuite(ReferenceTest.class);
+		suite.addTest(ScrAllTests.suite());
+		//$JUnit-END$
+		return suite;
+	}
+
+}
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ComponentTest.java b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ComponentTest.java
new file mode 100644
index 0000000..0cb95f3
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ComponentTest.java
@@ -0,0 +1,214 @@
+/**
+ * Copyright (c) 2009 Anyware Technologies and others.
+ * 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:
+ *     Anyware Technologies - initial API and implementation
+ *
+ * $Id$
+ */
+package org.eclipse.pde.ds.scr.tests;
+
+import junit.framework.TestCase;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.pde.ds.scr.Component;
+import org.eclipse.pde.ds.scr.ScrFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Component</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are tested:
+ * <ul>
+ *   <li>{@link org.eclipse.pde.ds.scr.Component#getImplementation() <em>Implementation</em>}</li>
+ *   <li>{@link org.eclipse.pde.ds.scr.Component#getAllProperties() <em>All Properties</em>}</li>
+ *   <li>{@link org.eclipse.pde.ds.scr.Component#getProperty() <em>Property</em>}</li>
+ *   <li>{@link org.eclipse.pde.ds.scr.Component#getProperties() <em>Properties</em>}</li>
+ *   <li>{@link org.eclipse.pde.ds.scr.Component#getService() <em>Service</em>}</li>
+ *   <li>{@link org.eclipse.pde.ds.scr.Component#getReference() <em>Reference</em>}</li>
+ * </ul>
+ * </p>
+ * @generated
+ */
+public class ComponentTest extends TestCase {
+
+	/**
+	 * The fixture for this Component test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Component fixture = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(ComponentTest.class);
+	}
+
+	/**
+	 * Constructs a new Component test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComponentTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this Component test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(Component fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this Component test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Component getFixture() {
+		return fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(ScrFactory.eINSTANCE.createComponent());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.pde.ds.scr.Component#getImplementation() <em>Implementation</em>}' feature getter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.pde.ds.scr.Component#getImplementation()
+	 * @generated
+	 */
+	public void testGetImplementation() {
+		// TODO: implement this feature getter test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.pde.ds.scr.Component#setImplementation(org.eclipse.pde.ds.scr.Implementation) <em>Implementation</em>}' feature setter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.pde.ds.scr.Component#setImplementation(org.eclipse.pde.ds.scr.Implementation)
+	 * @generated
+	 */
+	public void testSetImplementation() {
+		// TODO: implement this feature setter test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.pde.ds.scr.Component#getAllProperties() <em>All Properties</em>}' feature getter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.pde.ds.scr.Component#getAllProperties()
+	 * @generated
+	 */
+	public void testGetAllProperties() {
+		// TODO: implement this feature getter test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.pde.ds.scr.Component#getProperty() <em>Property</em>}' feature getter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.pde.ds.scr.Component#getProperty()
+	 * @generated
+	 */
+	public void testGetProperty() {
+		// TODO: implement this feature getter test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.pde.ds.scr.Component#getProperties() <em>Properties</em>}' feature getter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.pde.ds.scr.Component#getProperties()
+	 * @generated
+	 */
+	public void testGetProperties() {
+		// TODO: implement this feature getter test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.pde.ds.scr.Component#getService() <em>Service</em>}' feature getter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.pde.ds.scr.Component#getService()
+	 * @generated
+	 */
+	public void testGetService() {
+		// TODO: implement this feature getter test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.pde.ds.scr.Component#setService(org.eclipse.pde.ds.scr.Service) <em>Service</em>}' feature setter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.pde.ds.scr.Component#setService(org.eclipse.pde.ds.scr.Service)
+	 * @generated
+	 */
+	public void testSetService() {
+		// TODO: implement this feature setter test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.pde.ds.scr.Component#getReference() <em>Reference</em>}' feature getter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.pde.ds.scr.Component#getReference()
+	 * @generated
+	 */
+	public void testGetReference() {
+		// TODO: implement this feature getter test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+} //ComponentTest
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ImplementationTest.java b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ImplementationTest.java
new file mode 100644
index 0000000..e9fde55
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ImplementationTest.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) 2009 Anyware Technologies and others.
+ * 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:
+ *     Anyware Technologies - initial API and implementation
+ *
+ * $Id$
+ */
+package org.eclipse.pde.ds.scr.tests;
+
+import junit.framework.TestCase;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.pde.ds.scr.Implementation;
+import org.eclipse.pde.ds.scr.ScrFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Implementation</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ImplementationTest extends TestCase {
+
+	/**
+	 * The fixture for this Implementation test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Implementation fixture = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(ImplementationTest.class);
+	}
+
+	/**
+	 * Constructs a new Implementation test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ImplementationTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this Implementation test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(Implementation fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this Implementation test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Implementation getFixture() {
+		return fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(ScrFactory.eINSTANCE.createImplementation());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //ImplementationTest
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/PropertiesTest.java b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/PropertiesTest.java
new file mode 100644
index 0000000..c41dc77
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/PropertiesTest.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) 2009 Anyware Technologies and others.
+ * 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:
+ *     Anyware Technologies - initial API and implementation
+ *
+ * $Id$
+ */
+package org.eclipse.pde.ds.scr.tests;
+
+import junit.framework.TestCase;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.pde.ds.scr.Properties;
+import org.eclipse.pde.ds.scr.ScrFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Properties</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PropertiesTest extends TestCase {
+
+	/**
+	 * The fixture for this Properties test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Properties fixture = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(PropertiesTest.class);
+	}
+
+	/**
+	 * Constructs a new Properties test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PropertiesTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this Properties test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(Properties fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this Properties test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Properties getFixture() {
+		return fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(ScrFactory.eINSTANCE.createProperties());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //PropertiesTest
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/PropertyTest.java b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/PropertyTest.java
new file mode 100644
index 0000000..26cb79f
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/PropertyTest.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) 2009 Anyware Technologies and others.
+ * 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:
+ *     Anyware Technologies - initial API and implementation
+ *
+ * $Id$
+ */
+package org.eclipse.pde.ds.scr.tests;
+
+import junit.framework.TestCase;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.pde.ds.scr.Property;
+import org.eclipse.pde.ds.scr.ScrFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Property</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PropertyTest extends TestCase {
+
+	/**
+	 * The fixture for this Property test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Property fixture = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(PropertyTest.class);
+	}
+
+	/**
+	 * Constructs a new Property test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PropertyTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this Property test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(Property fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this Property test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Property getFixture() {
+		return fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(ScrFactory.eINSTANCE.createProperty());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //PropertyTest
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ProvideTest.java b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ProvideTest.java
new file mode 100644
index 0000000..e4a3578
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ProvideTest.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) 2009 Anyware Technologies and others.
+ * 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:
+ *     Anyware Technologies - initial API and implementation
+ *
+ * $Id$
+ */
+package org.eclipse.pde.ds.scr.tests;
+
+import junit.framework.TestCase;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.pde.ds.scr.Provide;
+import org.eclipse.pde.ds.scr.ScrFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Provide</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ProvideTest extends TestCase {
+
+	/**
+	 * The fixture for this Provide test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Provide fixture = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(ProvideTest.class);
+	}
+
+	/**
+	 * Constructs a new Provide test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ProvideTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this Provide test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(Provide fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this Provide test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Provide getFixture() {
+		return fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(ScrFactory.eINSTANCE.createProvide());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //ProvideTest
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ReferenceTest.java b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ReferenceTest.java
new file mode 100644
index 0000000..48387c3
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ReferenceTest.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) 2009 Anyware Technologies and others.
+ * 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:
+ *     Anyware Technologies - initial API and implementation
+ *
+ * $Id$
+ */
+package org.eclipse.pde.ds.scr.tests;
+
+import junit.framework.TestCase;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.pde.ds.scr.Reference;
+import org.eclipse.pde.ds.scr.ScrFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ReferenceTest extends TestCase {
+
+	/**
+	 * The fixture for this Reference test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Reference fixture = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(ReferenceTest.class);
+	}
+
+	/**
+	 * Constructs a new Reference test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReferenceTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this Reference test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(Reference fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this Reference test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Reference getFixture() {
+		return fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(ScrFactory.eINSTANCE.createReference());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //ReferenceTest
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ScrAllTests.java b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ScrAllTests.java
new file mode 100644
index 0000000..9b6d7e2
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ScrAllTests.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2009 Anyware Technologies and others.
+ * 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:
+ *     Anyware Technologies - initial API and implementation
+ *
+ * $Id$
+ */
+package org.eclipse.pde.ds.scr.tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test suite for the '<em><b>Scr</b></em>' model.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ScrAllTests extends TestSuite {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(suite());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static Test suite() {
+		TestSuite suite = new ScrAllTests("Scr Tests");
+		suite.addTest(ScrTests.suite());
+		return suite;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ScrAllTests(String name) {
+		super(name);
+	}
+
+} //ScrAllTests
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ScrExample.java b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ScrExample.java
new file mode 100644
index 0000000..48d9701
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ScrExample.java
@@ -0,0 +1,138 @@
+/**
+ * Copyright (c) 2009 Anyware Technologies and others.
+ * 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:
+ *     Anyware Technologies - initial API and implementation
+ *
+ * $Id$
+ */
+package org.eclipse.pde.ds.scr.tests;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.util.Diagnostician;
+
+import org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl;
+
+import org.eclipse.pde.ds.scr.Component;
+import org.eclipse.pde.ds.scr.ScrFactory;
+import org.eclipse.pde.ds.scr.ScrPackage;
+
+import org.eclipse.pde.ds.scr.util.ScrResourceFactoryImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * A sample utility for the '<em><b>scr</b></em>' package.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ScrExample {
+	/**
+	 * <!-- begin-user-doc -->
+	 * Load all the argument file paths or URIs as instances of the model.
+	 * <!-- end-user-doc -->
+	 * @param args the file paths or URIs.
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		// Create a resource set to hold the resources.
+		//
+		ResourceSet resourceSet = new ResourceSetImpl();
+		
+		// Register the appropriate resource factory to handle the content type.
+		//
+		resourceSet.getResourceFactoryRegistry().getContentTypeToFactoryMap().put
+			(ScrPackage.eCONTENT_TYPE,
+			 new ScrResourceFactoryImpl());
+		
+		// Register the appropriate content handler for all file extensions and any element from the package's namespace.
+		//
+		resourceSet.getURIConverter().getContentHandlers().add
+			(new RootXMLContentHandlerImpl(ScrPackage.eCONTENT_TYPE, null, null, ScrPackage.eNS_URI, null));
+
+		// Register the package to ensure it is available during loading.
+		//
+		resourceSet.getPackageRegistry().put
+			(ScrPackage.eNS_URI, 
+			 ScrPackage.eINSTANCE);
+        
+		// If there are no arguments, emit an appropriate usage message.
+		//
+		if (args.length == 0) {
+			System.out.println("Enter a list of file paths or URIs that have content like this:");
+			try {
+				Resource resource = resourceSet.createResource(URI.createURI("http:///My.scr"), ScrPackage.eCONTENT_TYPE);
+				Component root = ScrFactory.eINSTANCE.createComponent();
+				resource.getContents().add(root);
+				resource.save(System.out, null);
+			}
+			catch (IOException exception) {
+				exception.printStackTrace();
+			}
+		}
+		else {
+			// Iterate over all the arguments.
+			//
+			for (int i = 0; i < args.length; ++i) {
+				// Construct the URI for the instance file.
+				// The argument is treated as a file path only if it denotes an existing file.
+				// Otherwise, it's directly treated as a URL.
+				//
+				File file = new File(args[i]);
+				URI uri = file.isFile() ? URI.createFileURI(file.getAbsolutePath()): URI.createURI(args[0]);
+
+				try {
+					// Demand load resource for this file.
+					//
+					Resource resource = resourceSet.getResource(uri, true);
+					System.out.println("Loaded " + uri);
+
+					// Validate the contents of the loaded resource.
+					//
+					for (EObject eObject : resource.getContents()) {
+						Diagnostic diagnostic = Diagnostician.INSTANCE.validate(eObject);
+						if (diagnostic.getSeverity() != Diagnostic.OK) {
+							printDiagnostic(diagnostic, "");
+						}
+					}
+				}
+				catch (RuntimeException exception) {
+					System.out.println("Problem loading " + uri);
+					exception.printStackTrace();
+				}
+			}
+		}
+	}
+	
+	/**
+	 * <!-- begin-user-doc -->
+	 * Prints diagnostics with indentation.
+	 * <!-- end-user-doc -->
+	 * @param diagnostic the diagnostic to print.
+	 * @param indent the indentation for printing.
+	 * @generated
+	 */
+	protected static void printDiagnostic(Diagnostic diagnostic, String indent) {
+		System.out.print(indent);
+		System.out.println(diagnostic.getMessage());
+		for (Diagnostic child : diagnostic.getChildren()) {
+			printDiagnostic(child, indent + "  ");
+		}
+	}
+
+} //ScrExample
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ScrTests.java b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ScrTests.java
new file mode 100644
index 0000000..cec9d23
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ScrTests.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) 2009 Anyware Technologies and others.
+ * 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:
+ *     Anyware Technologies - initial API and implementation
+ *
+ * $Id$
+ */
+package org.eclipse.pde.ds.scr.tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test suite for the '<em><b>scr</b></em>' package.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ScrTests extends TestSuite {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(suite());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static Test suite() {
+		TestSuite suite = new ScrTests("scr Tests");
+		//$JUnit-BEGIN$
+		suite.addTestSuite(PropertiesTest.class);
+		suite.addTestSuite(PropertyTest.class);
+		suite.addTestSuite(ProvideTest.class);
+		suite.addTestSuite(ComponentTest.class);
+		suite.addTestSuite(ImplementationTest.class);
+		suite.addTestSuite(ServiceTest.class);
+		suite.addTestSuite(ReferenceTest.class);
+		//$JUnit-END$
+		return suite;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ScrTests(String name) {
+		super(name);
+	}
+
+} //ScrTests
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ServiceTest.java b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ServiceTest.java
new file mode 100644
index 0000000..a346894
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/src/org/eclipse/pde/ds/scr/tests/ServiceTest.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) 2009 Anyware Technologies and others.
+ * 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:
+ *     Anyware Technologies - initial API and implementation
+ *
+ * $Id$
+ */
+package org.eclipse.pde.ds.scr.tests;
+
+import junit.framework.TestCase;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.pde.ds.scr.ScrFactory;
+import org.eclipse.pde.ds.scr.Service;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Service</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ServiceTest extends TestCase {
+
+	/**
+	 * The fixture for this Service test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Service fixture = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(ServiceTest.class);
+	}
+
+	/**
+	 * Constructs a new Service test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ServiceTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this Service test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(Service fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this Service test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Service getFixture() {
+		return fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(ScrFactory.eINSTANCE.createService());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //ServiceTest
diff --git a/modeling/tests/org.eclipse.pde.ds.tests/test.xml b/modeling/tests/org.eclipse.pde.ds.tests/test.xml
new file mode 100644
index 0000000..6b298d3
--- /dev/null
+++ b/modeling/tests/org.eclipse.pde.ds.tests/test.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+
+<project name="testsuite" default="junits" basedir=".">
+	<property name="classname" value="org.eclipse.pde.ds.scr.tests.ScrAllTests" />
+
+	<!-- The property ${eclipse-home} should be passed into this script -->
+	<!-- Set a meaningful default value for when it is not. -->
+	<property name="eclipse-home" value="${basedir}\..\.." />
+
+	<!-- sets the properties eclipse-home, and library-file -->
+	<property name="plugin-name" value="org.eclipse.gef.test" />
+	<property name="library-file" value="${eclipse-home}/dropins/eclipse/plugins/org.eclipse.test/library.xml" />
+
+	<!-- buildDir=/home/www-data/build/gef/downloads/drops/3.4.0/N200801142250 -->
+	<!-- load org.eclipse.gef.releng/builder/tests/configs/local/testing.properties -->
+	<echo message="Load ${buildDir}/org.eclipse.${subprojectName2}.releng/builder/tests/configs/local/testing.properties" />
+	<property file="${buildDir}/org.eclipse.${subprojectName2}.releng/builder/tests/configs/local/testing.properties" />
+
+	<!-- This target holds all initialization code that needs to be done for -->
+	<!-- all tests that are to be run. Initialization for individual tests -->
+	<!-- should be done within the body of the suite target. -->
+	<target name="init">
+		<tstamp />
+		<delete>
+			<fileset dir="${eclipse-home}" includes="org*.xml" />
+		</delete>
+	</target>
+
+	<!-- This target defines the tests that need to be run. -->
+	<target name="suite">
+		<property name="gef-folder" value="${eclipse-home}/gef_folder" />
+		<delete dir="${gef-folder}" quiet="true" />
+		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
+			<property name="data-dir" value="${gef-folder}" />
+			<property name="plugin-name" value="${plugin-name}" />
+			<property name="vmargs" value="${Dflags}" />
+			<property name="classname" value="${classname}" />
+		</ant>
+	</target>
+
+	<!-- This target holds code to cleanup the testing environment after -->
+	<!-- after all of the tests have been run. You can use this target to -->
+	<!-- delete temporary files that have been created. -->
+	<target name="cleanup">
+		<mkdir dir="${results}/consolelogs" />
+		<copy failonerror="false" file="${eclipse-home}/results/${classname}.txt" tofile="${results}/consolelogs/${classname}_${platform}.metadata.log.txt" />
+	</target>
+
+	<!-- This target runs the test suite. Any actions that need to happen -->
+	<!-- after all the tests have been run should go here. -->
+	<target name="junits" depends="init,suite,cleanup">
+		<ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
+			<property name="includes" value="org*.xml" />
+			<property name="output-file" value="${plugin-name}.xml" />
+		</ant>
+	</target>
+
+</project>