Use p2.inf file to ensure the SDK features are non-greedy optional.
diff --git a/org.aspectj-feature/feature.xml b/org.aspectj-feature/feature.xml
index 51eedb6..841663a 100644
--- a/org.aspectj-feature/feature.xml
+++ b/org.aspectj-feature/feature.xml
@@ -38,5 +38,13 @@
          install-size="0"
          version="0.0.0"
          unpack="false"/>
+         
+   <includes
+         id="org.aspectj.source"
+         name="AspectJ Compiler Source Code"
+         version="0.0.0"
+         optional="true"/>
+
+         
 
 </feature>
diff --git a/org.aspectj-feature/p2.inf b/org.aspectj-feature/p2.inf
new file mode 100644
index 0000000..55713dd
--- /dev/null
+++ b/org.aspectj-feature/p2.inf
@@ -0,0 +1,5 @@
+# The source feature should be optional and non-greedy
+requires.0.namespace=org.eclipse.equinox.p2.iu
+requires.0.name=org.aspectj.source.feature.group
+requires.0.greedy=false
+requires.0.optional=true
diff --git a/org.eclipse.ajdt-feature/feature.xml b/org.eclipse.ajdt-feature/feature.xml
index ad50bb6..396b268 100644
--- a/org.eclipse.ajdt-feature/feature.xml
+++ b/org.eclipse.ajdt-feature/feature.xml
@@ -25,7 +25,7 @@
    <includes
          id="org.eclipse.ajdt.source"
          version="0.0.0"
-         name=""
+         name="AJDT Source Code"
          optional="true"/>
 
    <includes
@@ -38,11 +38,6 @@
          id="org.aspectj"
          version="0.0.0"/>
 
-   <includes
-         id="org.aspectj.source"
-         version="0.0.0"
-         optional="true"/>
-
    <requires>
       <import plugin="org.apache.ant"/>
       <import plugin="org.eclipse.core.resources"/>
diff --git a/org.eclipse.ajdt-feature/p2.inf b/org.eclipse.ajdt-feature/p2.inf
new file mode 100644
index 0000000..4b743ca
--- /dev/null
+++ b/org.eclipse.ajdt-feature/p2.inf
@@ -0,0 +1,5 @@
+# The source feature should be optional and non-greedy
+requires.0.namespace=org.eclipse.equinox.p2.iu
+requires.0.name=org.eclipse.ajdt.source.feature.group
+requires.0.greedy=false
+requires.0.optional=true
\ No newline at end of file