Update to latest DS api

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1656030 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/runtime/ServiceComponentRuntimeImpl.java b/scr/src/main/java/org/apache/felix/scr/impl/runtime/ServiceComponentRuntimeImpl.java
index 42331da..438591a 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/runtime/ServiceComponentRuntimeImpl.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/runtime/ServiceComponentRuntimeImpl.java
@@ -310,19 +310,12 @@
 			dto.bind = r.getBind();
 			dto.cardinality = r.getCardinality();
 			dto.field = r.getField();
+			dto.fieldOption = r.getFieldOption();
 			dto.interfaceName = r.getInterface();
 			dto.name = r.getName();
 			dto.policy = r.getPolicy();
 			dto.policyOption = r.getPolicyOption();
 			dto.scope = r.getScope().name();
-			if ( r.getField() != null )
-			{
-		        dto.strategy = r.isReplace() ? ReferenceDTO.STRATEGY_FIELD_REPLACE : ReferenceDTO.STRATEGY_FIELD_UPDATE;
-			}
-			else
-			{
-			    dto.strategy = r.getBind() != null ? ReferenceDTO.STRATEGY_METHOD : ReferenceDTO.STRATEGY_LOOKUP;
-			}
 			dto.target = r.getTarget();
 			dto.unbind = r.getUnbind();
 			dto.updated = r.getUpdated();
diff --git a/scr/src/main/java/org/osgi/service/component/ComponentConstants.java b/scr/src/main/java/org/osgi/service/component/ComponentConstants.java
index c8d3fa1..de3a41a 100644
--- a/scr/src/main/java/org/osgi/service/component/ComponentConstants.java
+++ b/scr/src/main/java/org/osgi/service/component/ComponentConstants.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) OSGi Alliance (2004, 2014). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2015). All Rights Reserved.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,7 +21,7 @@
 /**
  * Defines standard names for Service Component constants.
  * 
- * @author $Id: 93b7c4e0215afc23d3f2dce477cdf4298fd366a4 $
+ * @author $Id: 624eb5610c2127d24ce76f16b3cc146cbcf6db57 $
  */
 @ProviderType
 public interface ComponentConstants {
@@ -123,4 +123,20 @@
 	 * @since 1.1
 	 */
 	public static final int		DEACTIVATION_REASON_BUNDLE_STOPPED			= 6;
+
+	/**
+	 * Capability name for Service Component Runtime.
+	 * 
+	 * <p>
+	 * Used in {@code Provide-Capability} and {@code Require-Capability}
+	 * manifest headers with the {@code osgi.extender} namespace. For example:
+	 * 
+	 * <pre>
+	 * Require-Capability: osgi.extender;
+	 *  filter:="(&amp;(osgi.extender=osgi.component)(version&gt;=1.3)(!(version&gt;=2.0)))"
+	 * </pre>
+	 * 
+	 * @since 1.3
+	 */
+	public static final String	COMPONENT_CAPABILITY_NAME					= "osgi.component";
 }
diff --git a/scr/src/main/java/org/osgi/service/component/runtime/dto/ReferenceDTO.java b/scr/src/main/java/org/osgi/service/component/runtime/dto/ReferenceDTO.java
index 7d7fc31..8f7c5b1 100755
--- a/scr/src/main/java/org/osgi/service/component/runtime/dto/ReferenceDTO.java
+++ b/scr/src/main/java/org/osgi/service/component/runtime/dto/ReferenceDTO.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) OSGi Alliance (2013, 2014). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2013, 2015). All Rights Reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,56 +23,11 @@
  * 
  * @since 1.3
  * @NotThreadSafe
- * @author $Id: 906b26512776b149670ec3048a8714dc99ff447a $
+ * @author $Id: fca2413271fcded16b4ebe3c6628fe8660e2575e $
  */
 public class ReferenceDTO extends DTO {
 
 	/**
-	 * Constant for the lookup strategy
-	 * 
-	 * @see #strategy
-	 */
-	public static final String	STRATEGY_LOOKUP			= "LOOKUP";
-
-	/**
-	 * Constant for the method strategy
-	 * 
-	 * @see #strategy
-	 */
-	public static final String	STRATEGY_METHOD			= "METHOD";
-
-	/**
-	 * Constant for the field replace strategy
-	 * 
-	 * @see #strategy
-	 */
-	public static final String	STRATEGY_FIELD_REPLACE	= "FIELD_REPLACE";
-
-	/**
-	 * Constant for the field update strategy
-	 * 
-	 * @see #strategy
-	 */
-	public static final String	STRATEGY_FIELD_UPDATE	= "FIELD_UPDATE";
-
-	/**
-	 * The strategy of the reference.
-	 * 
-	 * <p>
-	 * This field returns the strategy used for this reference. If the value is
-	 * either {@code #STRATEGY_FIELD_REPLACE} or {@code #STRATEGY_FIELD_UPDATE},
-	 * {@link #field} returns the name of the field. If the strategy is
-	 * {@code #STRATEGY_METHOD} {@link #bind}, {@link #unbind}, and
-	 * {@link #updated} return the name of the methods.
-	 *
-	 * @see #STRATEGY_FIELD_REPLACE
-	 * @see #STRATEGY_FIELD_UPDATE
-	 * @see #STRATEGY_LOOKUP
-	 * @see #STRATEGY_METHOD
-	 */
-	public String	strategy;
-
-	/**
 	 * The name of the reference.
 	 * 
 	 * <p>
@@ -136,9 +91,8 @@
 	 * 
 	 * <p>
 	 * This is declared in the {@code bind} attribute of the {@code reference}
-	 * element. This must be {@code null} if the component is not using the
-	 * method strategy or the component description does not declare a bind
-	 * method for the reference.
+	 * element. This must be {@code null} if the component description does not
+	 * declare a bind method for the reference.
 	 */
 	public String	bind;
 
@@ -147,11 +101,8 @@
 	 * 
 	 * <p>
 	 * This is declared in the {@code unbind} attribute of the {@code reference}
-	 * element. This must be {@code null} if the component is not using the
-	 * method strategy or the component description does not declare an unbind
-	 * method for the reference.
-	 *
-	 * @see #strategy
+	 * element. This must be {@code null} if the component description does not
+	 * declare an unbind method for the reference.
 	 */
 	public String	unbind;
 
@@ -160,11 +111,8 @@
 	 * 
 	 * <p>
 	 * This is declared in the {@code updated} attribute of the
-	 * {@code reference} element. This must be {@code null} if the component is
-	 * not using the method strategy or the component description does not
-	 * declare an updated method for the reference.
-	 * 
-	 * @see #strategy
+	 * {@code reference} element. This must be {@code null} if the component
+	 * description does not declare an updated method for the reference.
 	 */
 	public String	updated;
 
@@ -173,14 +121,22 @@
 	 * 
 	 * <p>
 	 * This is declared in the {@code field} attribute of the {@code reference}
-	 * element. This must be {@code null} if the component is using the lookup
-	 * or method strategy.
-	 * 
-	 * @see #strategy
+	 * element. This must be {@code null} if the component description does not
+	 * declare a field for the reference.
 	 */
 	public String	field;
 
 	/**
+	 * The field option of the reference.
+	 * 
+	 * <p>
+	 * This is declared in the {@code field-option} attribute of the
+	 * {@code reference} element. This must be {@code null} if the component
+	 * description does not declare a field for the reference.
+	 */
+	public String	fieldOption;
+
+	/**
 	 * The scope of the reference.
 	 * 
 	 * <p>