FELIX-5055: Upgrade DM to BndTools 3.0.0


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1705158 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/build.gradle b/dependencymanager/build.gradle
index db485ef..4465945 100644
--- a/dependencymanager/build.gradle
+++ b/dependencymanager/build.gradle
@@ -20,16 +20,30 @@
 /*
  * Master Gradle build script
  *
- * Depends on bndWorkspace and bndURI properties set by settings.gradle.
+ * Depends on bndPlugin property set by settings.gradle.
+ * and bnd_* values from gradle.properties.
  */
 
-/* Add bnd as a script dependency */
+import aQute.bnd.build.Workspace
+import aQute.bnd.osgi.Constants
+
+/* Add bnd gradle plugin as a script dependency */
 buildscript {
   dependencies {
-    classpath files(bndURI)
+    classpath bndPlugin
   }
 }
 
+/* Initialize the bnd workspace */
+Workspace.setDriver(Constants.BNDDRIVER_GRADLE)
+Workspace.addGestalt(Constants.GESTALT_BATCH, null)
+ext.bndWorkspace = new Workspace(rootDir, bnd_cnf)
+if (bndWorkspace == null) {
+  throw new GradleException("Unable to load workspace ${rootDir}/${bnd_cnf}")
+}
+
+ext.cnf = rootProject.project(bnd_cnf)
+
 /* Configure the subprojects */
 subprojects {
   def bndProject = bndWorkspace.getProject(name)
@@ -37,4 +51,3 @@
     plugins.apply 'biz.aQute.bnd'
   }
 }
-
diff --git a/dependencymanager/cnf/buildrepo/biz.aQute.junit/biz.aQute.junit-latest.jar b/dependencymanager/cnf/buildrepo/biz.aQute.junit/biz.aQute.junit-latest.jar
index 3d0d214..bda8fe4 100644
--- a/dependencymanager/cnf/buildrepo/biz.aQute.junit/biz.aQute.junit-latest.jar
+++ b/dependencymanager/cnf/buildrepo/biz.aQute.junit/biz.aQute.junit-latest.jar
Binary files differ
diff --git a/dependencymanager/cnf/buildrepo/biz.aQute.launcher/biz.aQute.launcher-latest.jar b/dependencymanager/cnf/buildrepo/biz.aQute.launcher/biz.aQute.launcher-latest.jar
index efc751c..0e9c4a3 100644
--- a/dependencymanager/cnf/buildrepo/biz.aQute.launcher/biz.aQute.launcher-latest.jar
+++ b/dependencymanager/cnf/buildrepo/biz.aQute.launcher/biz.aQute.launcher-latest.jar
Binary files differ
diff --git a/dependencymanager/cnf/ext/junit.bnd b/dependencymanager/cnf/ext/junit.bnd
index 1a42d1a..f902dcf 100644
--- a/dependencymanager/cnf/ext/junit.bnd
+++ b/dependencymanager/cnf/ext/junit.bnd
@@ -17,3 +17,5 @@
 junit:\
 	junit;version=latest,\
 	hamcrest-core;version=latest
+
+test-reports: test-results
diff --git a/dependencymanager/cnf/ext/pluginpaths.bnd b/dependencymanager/cnf/ext/pluginpaths.bnd
index 9c12f2e..228ed16 100644
--- a/dependencymanager/cnf/ext/pluginpaths.bnd
+++ b/dependencymanager/cnf/ext/pluginpaths.bnd
@@ -13,6 +13,4 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-#
--pluginpath:\
-	${plugin-dir}/biz.aQute.repository/biz.aQute.repository.jar
\ No newline at end of file
+#
\ No newline at end of file
diff --git a/dependencymanager/cnf/gradle/biz.aQute.bnd.gradle.jar b/dependencymanager/cnf/gradle/biz.aQute.bnd.gradle.jar
deleted file mode 100644
index 0a25453..0000000
--- a/dependencymanager/cnf/gradle/biz.aQute.bnd.gradle.jar
+++ /dev/null
Binary files differ
diff --git a/dependencymanager/cnf/plugins/biz.aQute.repository/biz.aQute.repository.jar b/dependencymanager/cnf/plugins/biz.aQute.repository/biz.aQute.repository.jar
index 1b6e664..abae58b 100644
--- a/dependencymanager/cnf/plugins/biz.aQute.repository/biz.aQute.repository.jar
+++ b/dependencymanager/cnf/plugins/biz.aQute.repository/biz.aQute.repository.jar
Binary files differ
diff --git a/dependencymanager/gradle.properties b/dependencymanager/gradle.properties
index d0b7672..fe4df56 100644
--- a/dependencymanager/gradle.properties
+++ b/dependencymanager/gradle.properties
@@ -33,8 +33,8 @@
 # cnf project name
 bnd_cnf=cnf
 
-# bnd_jar can also be a URL.
-bnd_jar=cnf/gradle/biz.aQute.bnd.gradle.jar
+# bnd_plugin is the dependency declaration for the bnd gradle plugin
+bnd_plugin=biz.aQute.bnd:biz.aQute.bnd.gradle:3.0.0
 
 # bnd_build can be set to the name of a "master" project whose dependencies will seed the set of projects to build.
 bnd_build=
diff --git a/dependencymanager/org.apache.felix.dependencymanager.benchmark/index.bndrun b/dependencymanager/org.apache.felix.dependencymanager.benchmark/index.bndrun
index 128a69b..177916c 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.benchmark/index.bndrun
+++ b/dependencymanager/org.apache.felix.dependencymanager.benchmark/index.bndrun
@@ -23,18 +23,18 @@
 	org.apache.felix.gogo.shell;version=0.10.0,\
 	org.apache.felix.gogo.runtime;version=0.10.0,\
 	org.apache.felix.configadmin;version=1.8.0,\
-	org.apache.felix.dependencymanager.benchmark.scenario,\
-	org.apache.felix.dependencymanager.benchmark.dependencymanager,\
-    org.apache.felix.dependencymanager.benchmark.dependencymanager.parallel,\
-    org.apache.felix.dependencymanager.benchmark.controller
+	org.apache.felix.dependencymanager.benchmark.scenario;version=latest,\
+	org.apache.felix.dependencymanager.benchmark.dependencymanager;version=latest,\
+    org.apache.felix.dependencymanager.benchmark.dependencymanager.parallel;version=latest,\
+    org.apache.felix.dependencymanager.benchmark.controller;version=latest
 	
--runfw: org.apache.felix.framework;version='[4.4.0,4.4.0]'
+-runfw: org.apache.felix.framework;version='[5.2.0,5.2.0]'
 
 -runproperties:  \
 	ds.loglevel=warn,\
 	org.osgi.framework.bootdelegation='sun.*,com.sun.*,org.netbeans.*',\
 	org.apache.felix.dependencymanager.filterindex='objectClass,id'
 -runvm: -server -Xmx1024m -Xms1024m
--runee: JavaSE-1.8
+-runee: JavaSE/compact1-1.9
 javac.source:          1.8
 javac.target:          1.8
diff --git a/dependencymanager/org.apache.felix.dependencymanager.benchmark/noindex.bndrun b/dependencymanager/org.apache.felix.dependencymanager.benchmark/noindex.bndrun
index 480a954..5e9592f 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.benchmark/noindex.bndrun
+++ b/dependencymanager/org.apache.felix.dependencymanager.benchmark/noindex.bndrun
@@ -23,12 +23,12 @@
 	org.apache.felix.gogo.shell;version=0.10.0,\
 	org.apache.felix.gogo.runtime;version=0.10.0,\
 	org.apache.felix.configadmin;version=1.8.0,\
-	org.apache.felix.dependencymanager.benchmark.scenario,\
-	org.apache.felix.dependencymanager.benchmark.dependencymanager,\
-    org.apache.felix.dependencymanager.benchmark.dependencymanager.parallel,\
-    org.apache.felix.dependencymanager.benchmark.controller
+	org.apache.felix.dependencymanager.benchmark.scenario;version=latest,\
+	org.apache.felix.dependencymanager.benchmark.dependencymanager;version=latest,\
+    org.apache.felix.dependencymanager.benchmark.dependencymanager.parallel;version=latest,\
+    org.apache.felix.dependencymanager.benchmark.controller;version=latest
 	
--runfw: org.apache.felix.framework;version='[4.4.0,4.4.0]'
+-runfw: org.apache.felix.framework;version='[5.2.0,5.2.0]'
 
 -runproperties:  \
 	ds.loglevel=warn,\
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/bnd.bnd b/dependencymanager/org.apache.felix.dependencymanager.itest/bnd.bnd
index 5ab27e1..c5c968c 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.itest/bnd.bnd
+++ b/dependencymanager/org.apache.felix.dependencymanager.itest/bnd.bnd
@@ -14,13 +14,14 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
--runbundles:  \
+-runbundles: \
 	org.apache.felix.metatype;version=1.0.4,\
 	org.apache.felix.gogo.runtime;version=0.10.0,\
 	org.apache.felix.log;version=1.0.1,\
 	org.apache.felix.configadmin;version=1.8.6,\
 	org.apache.felix.dependencymanager;version=latest,\
-	org.apache.felix.dependencymanager.shell;version=latest
+	org.apache.felix.dependencymanager.shell;version=latest,\
+	biz.aQute.junit;version=3.0.0
 -runee: JavaSE-1.7
 -runvm: -ea
 -runfw: org.apache.felix.framework
diff --git a/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/bnd.bnd b/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/bnd.bnd
index 38e5cce..69ef111 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/bnd.bnd
+++ b/dependencymanager/org.apache.felix.dependencymanager.runtime.itest/bnd.bnd
@@ -29,7 +29,8 @@
 	org.apache.felix.log;version=1.0.1,\
 	org.apache.felix.dependencymanager;version=latest,\
 	org.apache.felix.dependencymanager.runtime;version=latest,\
-	org.apache.felix.dependencymanager.shell;version=latest
+	org.apache.felix.dependencymanager.shell;version=latest,\
+	biz.aQute.junit;version=3.0.0	
 -runee: JavaSE-1.7
 -runfw: org.apache.felix.framework;version='[4.4.0,4.4.0]'
 -runsystempackages: \
diff --git a/dependencymanager/settings.gradle b/dependencymanager/settings.gradle
index 69007e8..90f6d5d 100644
--- a/dependencymanager/settings.gradle
+++ b/dependencymanager/settings.gradle
@@ -24,37 +24,27 @@
  */
 
 import aQute.bnd.build.Workspace
+import aQute.bnd.osgi.Constants
 
-/* Add bnd as a script dependency */
+/* Add bnd gradle plugin as a script dependency */
 buildscript {
+  repositories {
+    jcenter()
+  }
   dependencies {
-    def bndURI = rootDir.toURI().resolve(bnd_jar)
-    if (bndURI.scheme != 'file') {
-      /* If not a local file, copy to a local file in cnf/cache */
-      def cnfCache = mkdir("${rootDir}/${bnd_cnf}/cache")
-      def bndJarFile = new File(cnfCache, 'biz.aQute.bnd.gradle.jar')
-      if (!bndJarFile.exists()) {
-        println "Downloading ${bndURI} to ${bndJarFile} ..."
-        bndURI.toURL().withInputStream { is ->
-          bndJarFile.withOutputStream { os ->
-            def bos = new BufferedOutputStream( os )
-            bos << is
-          }
-        }
-      }
-      bndURI = bndJarFile.toURI()
-    }
-    classpath files(bndURI)
-
-    /* After the rootProject is created, pass URI to projects */
-    gradle.rootProject { rootProject ->
-      rootProject.ext.bndURI = bndURI
-    }
+    classpath bnd_plugin
+  }
+  /* Pass bnd gradle plugin classpath to rootProject once created */
+  def bndPlugin = files(configurations.classpath.files)
+  gradle.rootProject { rootProject ->
+    rootProject.ext.bndPlugin = bndPlugin
   }
 }
 
 /* Initialize the bnd workspace */
-def workspace = Workspace.getWorkspace(rootDir, bnd_cnf)
+Workspace.setDriver(Constants.BNDDRIVER_GRADLE)
+Workspace.addGestalt(Constants.GESTALT_BATCH, null)
+def workspace = new Workspace(rootDir, bnd_cnf)
 if (workspace == null) {
   throw new GradleException("Unable to load workspace ${rootDir}/${bnd_cnf}")
 }
@@ -104,8 +94,8 @@
   if (! projectName.equals("org.apache.felix.dependencymanager.benchmark")) {
     include projectName
     def project = getBndProject(workspace, projectName)
-    project?.dependson.each {
-      include it.name
+    project?.getDependson()*.getName().each {
+      include it
     }
   }
 }
@@ -123,10 +113,10 @@
 
   project.getInfo(workspace, "${rootDir} :")
   def errorCount = 0
-  project.warnings.each {
+  project.getWarnings().each {
     println "Warning: ${it}"
   }
-  project.errors.each {
+  project.getErrors().each {
     println "Error  : ${it}"
     errorCount++
   }
@@ -141,9 +131,3 @@
   }
   throw new GradleException("Project ${rootDir}/${projectName} is not a valid bnd project")
 }
-
-/* After the rootProject is created, set up some properties. */
-gradle.rootProject { rootProject ->
-  rootProject.ext.bndWorkspace = workspace
-  rootProject.ext.cnf = rootProject.project(bnd_cnf)
-}