added an action to configure experimental scr builder
diff --git a/modeling/plugins/org.eclipse.pde.ds.ui/META-INF/MANIFEST.MF b/modeling/plugins/org.eclipse.pde.ds.ui/META-INF/MANIFEST.MF
index d8b3d38..ce9f369 100644
--- a/modeling/plugins/org.eclipse.pde.ds.ui/META-INF/MANIFEST.MF
+++ b/modeling/plugins/org.eclipse.pde.ds.ui/META-INF/MANIFEST.MF
@@ -16,7 +16,8 @@
  org.eclipse.wst.xml.core;bundle-version="1.1.400";resolution:=optional,
  org.eclipse.wst.xml.ui;bundle-version="1.1.0";resolution:=optional,
  org.eclipse.jface.text;bundle-version="3.5.0",
- org.eclipse.ui.ide;bundle-version="3.5.0"
+ org.eclipse.ui.ide;bundle-version="3.5.0",
+ org.eclipse.ui
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Localization: plugin
@@ -26,7 +27,8 @@
  org.eclipse.pde.ds.ui.internal.editor.detailpart.properties;x-internal:=true,
  org.eclipse.pde.ds.ui.internal.editor.detailpart.services;x-internal:=true,
  org.eclipse.pde.ds.ui.internal.editor.masterdetail;x-internal:=true,
- org.eclipse.pde.ds.ui.internal.editor.wizard;x-internal:=true
+ org.eclipse.pde.ds.ui.internal.editor.wizard;x-internal:=true,
+ org.eclipse.pde.ds.ui.internal.handlers;x-internal:=true
 Import-Package: org.eclipse.core.databinding,
  org.eclipse.core.databinding.observable,
  org.eclipse.core.databinding.observable.value,
diff --git a/modeling/plugins/org.eclipse.pde.ds.ui/plugin.properties b/modeling/plugins/org.eclipse.pde.ds.ui/plugin.properties
index dac6ed4..42be1ff 100644
--- a/modeling/plugins/org.eclipse.pde.ds.ui/plugin.properties
+++ b/modeling/plugins/org.eclipse.pde.ds.ui/plugin.properties
@@ -7,9 +7,10 @@
 # Contributors:
 #     Anyware Technologies - initial API and implementation
 #
-# $Id: plugin.properties,v 1.1 2009/02/13 13:26:26 bcabe Exp $
+# $Id: plugin.properties,v 1.2 2009/07/18 20:10:11 bcabe Exp $
 
 pluginName = Declarative Services 1.1 Editor
 providerName = Eclipse.org
 
-editor.name = Component Definition Editor (experimental)
\ No newline at end of file
+editor.name = Component Definition Editor (experimental)
+command.configureDSBuilder.name = Configure experimental DS Builder
\ No newline at end of file
diff --git a/modeling/plugins/org.eclipse.pde.ds.ui/plugin.xml b/modeling/plugins/org.eclipse.pde.ds.ui/plugin.xml
index c101919..1d113f7 100644
--- a/modeling/plugins/org.eclipse.pde.ds.ui/plugin.xml
+++ b/modeling/plugins/org.eclipse.pde.ds.ui/plugin.xml
@@ -17,4 +17,28 @@
          </contentTypeBinding>
       </editor>
    </extension>
+   <extension
+         point="org.eclipse.ui.commands">
+      <command
+            defaultHandler="org.eclipse.pde.ds.ui.internal.handlers.AddScrBuilderHandler"
+            id="org.eclipse.pde.ds.ui.experimental.commands.addScrBuilder"
+            name="%command.configureDSBuilder.name"/>
+   </extension>
+   <extension
+         point="org.eclipse.ui.menus">
+      <menuContribution
+            locationURI="popup:org.eclipse.ui.popup.any">
+         <command
+               commandId="org.eclipse.pde.ds.ui.experimental.commands.addScrBuilder"
+               style="push">
+            <visibleWhen
+                  checkEnabled="false">
+               <iterate>
+                  <adapt
+                        type="org.eclipse.core.resources.IProject">
+                  </adapt></iterate>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
 </plugin>
diff --git a/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/handlers/AddScrBuilderHandler.java b/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/handlers/AddScrBuilderHandler.java
new file mode 100644
index 0000000..c727c97
--- /dev/null
+++ b/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/handlers/AddScrBuilderHandler.java
@@ -0,0 +1,58 @@
+package org.eclipse.pde.ds.ui.internal.handlers;
+
+import org.eclipse.core.commands.*;
+import org.eclipse.core.resources.*;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+/**
+ * Our sample handler extends AbstractHandler, an IHandler base class.
+ * @see org.eclipse.core.commands.IHandler
+ * @see org.eclipse.core.commands.AbstractHandler
+ */
+public class AddScrBuilderHandler extends AbstractHandler {
+	/**
+	 * The constructor.
+	 */
+	public AddScrBuilderHandler() {
+	}
+
+	/**
+	 * the command has been executed, so extract extract the needed information
+	 * from the application context.
+	 */
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		ISelection sel = HandlerUtil.getCurrentSelection(event);
+		if (!sel.isEmpty()) {
+			if (sel instanceof IStructuredSelection) {
+				IProject project = (IProject) ((IStructuredSelection) sel).getFirstElement();
+
+				IProjectDescription projectDescription = null;
+				try {
+					projectDescription = project.getDescription();
+				} catch (CoreException e) {
+					// TODO handle exception ...
+				}
+
+				ICommand[] buildCommands = projectDescription.getBuildSpec();
+				ICommand[] newBuildCommands = new ICommand[buildCommands.length + 1];
+				System.arraycopy(buildCommands, 0, newBuildCommands, 0, buildCommands.length);
+				ICommand buildCommand = projectDescription.newCommand();
+				buildCommand.setBuilderName("org.eclipse.pde.ds.builder.scrBuilder"); //$NON-NLS-1$
+				newBuildCommands[buildCommands.length] = buildCommand; //$NON-NLS-1$
+				projectDescription.setBuildSpec(newBuildCommands);
+
+				try {
+					project.setDescription(projectDescription, IResource.FORCE, null);
+					project.build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
+				} catch (CoreException e) {
+					// TODO handle exception ...
+				}
+			}
+		}
+		return null;
+	}
+}