JAL-3210 JAL-3456 Mothballing work done on using goomph for jalviewjs build
[jalview.git] / build.gradle
index f355258..5f514e8 100644 (file)
-import org.apache.tools.ant.filters.ReplaceTokens
 import org.gradle.internal.os.OperatingSystem
-import org.gradle.plugins.ide.eclipse.model.*
-import groovy.transform.ExternalizeMethods
-//import org.eclipse.osgi.*
+import org.gradle.plugins.ide.eclipse.model.Output
+import org.gradle.plugins.ide.eclipse.model.Library
+
 import com.diffplug.gradle.GoomphCacheLocations
 
 buildscript {
-  repositories {
-    /*
-    mavenCentral()
-    jcenter()
-    */
-  }
 }
 
 plugins {
   id 'java'
   id 'application'
   id 'eclipse'
+
   id 'com.diffplug.gradle.oomph.ide' version '3.18.1'
   id 'com.diffplug.gradle.equinoxlaunch' version '3.18.1'
   id 'com.diffplug.gradle.eclipse.mavencentral' version '3.18.1'
-}
-
-
-dependencies {
-    //compile group: 'org.osgi', name: 'org.osgi.service.component', version: '1.4.0'
-/*
-    source.addMaven('org.eclipse.platform:org.eclipse.osgi:3.14.0')
-    source.addMaven('org.eclipse.platform:org.eclipse.equinox.common:3.10.400')
-    source.addMaven('org.eclipse.platform:org.eclipse.core.jobs:3.10.400')
-    source.addMaven('org.eclipse.platform:org.eclipse.update.configurator:3.4.300')
-    source.addMaven('org.eclipse.platform:org.eclipse.core.runtime:3.16.0')
-    source.addMaven('org.eclipse.platform:org.eclipse.equinox.ds:1.6.0')
-    source.addMaven('javax.inject:com.springsource.javax.inject:1.0.0')
-*/
-  //compile 'com.ibm.icu:com.ibm.icu:4.4.2'
+  id 'com.diffplug.gradle.p2.asmaven' version '3.18.1'
 }
 
 def jalviewDirAbsolutePath = file(jalviewDir).getAbsolutePath()
+def useIde = useGoomph.equals("true")
 
 repositories {
   jcenter()
   mavenCentral()
-  maven { url "http://maven.icm.edu.pl/artifactory/repo/" }
-  maven { url "http://maven.geomajas.org/" }
-  maven { url "https://repo.spring.io/plugins-release/" }
-  maven { url "${jalviewDirAbsolutePath}/${m2RepoDir}" }
-  mavenLocal()
   flatDir {
     dirs gradlePluginsDir
   }
 }
 
+configurations {
+  jalviewjsIde
+}
 
 
+if (useIde) {
 
+  p2AsMaven {
+    group 'eclipseDeps', {
+      repoEclipse goomph_eclipse_repo_version
+      //slicingOption 'latestVersionOnly', 'true'
+      iu 'org.eclipse.update.configurator'
 
 
+      iu 'org.eclipse.jdt.apt.core'
+      iu 'org.eclipse.jdt.core'
+      iu 'org.eclipse.jdt.annotation'
 
-/*
-p2AsMaven {
-  def requiredBundles = [
-               'org.eclipse.core.commands',
-               'org.eclipse.core.resources',
-               'org.eclipse.core.runtime',
-               'org.eclipse.ui',
-               'org.eclipse.ui.ide',
-               'org.eclipse.jface',
-               'org.eclipse.swt',
-               //"org.eclipse.swt.${com.diffplug.common.swt.os.SwtPlatform.getNative()}",
-               'org.eclipse.equinox.registry',
-               'org.eclipse.equinox.common',
-               'org.eclipse.osgi',
-               'org.eclipse.core.jobs',
-               'org.eclipse.ui.workbench',
-               'org.eclipse.jdt.core',
-               'org.eclipse.jdt.ui',
-               'org.eclipse.text'
-  ]
-
-  group 'eclipse-deps', {
-    repoEclipse '4.12.0'
-    // reduce the number of plugins downloaded
-    slicingOption 'latestVersionOnly', 'true'
-    requiredBundles.each {
-      iu "${it}"
     }
-    append true
+    group 'ecjDeps', {
+      repo 'https://download.eclipse.org/eclipse/updates/4.13/R-4.13-201909161045/'
+      iu 'org.eclipse.debug.core'
+      iu 'org.eclipse.jdt.apt.pluggable.core'
+      iu 'org.eclipse.jdt.apt.ui'
+      iu 'org.eclipse.jdt.compiler.apt'
+      iu 'org.eclipse.jdt.compiler.tool'
+      iu 'org.eclipse.jdt.core.manipulation'
+      iu 'org.eclipse.jdt.debug'
+      iu 'org.eclipse.jdt.debug.ui'
+      iu 'org.eclipse.jdt.doc.user'
+      iu 'org.eclipse.jdt.junit'
+      iu 'org.eclipse.jdt.junit.core'
+      iu 'org.eclipse.jdt.junit4.runtime'
+      iu 'org.eclipse.jdt.junit4.runtime'
+      iu 'org.eclipse.jdt.junit5.runtime'
+      iu 'org.eclipse.jdt.launching'
+      iu 'org.eclipse.jdt.ui'
+
+      iu 'org.eclipse.jdt.launching.macosx'
+      iu 'org.eclipse.jdt.launching.ui.macosx'
+    }
+    group 'eclipseOrbit', {
+      repo goomph_orbit_repo
+      slicingOption 'latestVersionOnly', 'true'
+      iu 'javax.el'
+      iu 'javax.servlet'
+      iu 'javax.servlet.jsp'
+      iu 'org.apache.ant'
+      iu 'org.apache.batik.constants'
+      iu 'org.apache.batik.css'
+      iu 'org.apache.batik.i18n'
+      iu 'org.apache.batik.util'
+      iu 'org.apache.commons.beanutils'
+      iu 'org.apache.commons.collections'
+      iu 'org.apache.commons.jxpath'
+      iu 'org.apache.commons.io'
+      iu 'org.apache.commons.logging'
+      iu 'org.apache.xmlgraphics'
+      iu 'org.jdom'
+      iu 'org.w3c.dom.events'
+      iu 'org.w3c.dom.smil'
+      iu 'org.w3c.dom.svg'
+    }
   }
-}
-*/
 
+} // if (useIde) {}
+
+dependencies {
 /*
-eclipseMavenCentral {
-  release '4.13.0', {
-    compile 'org.eclipse.osgi'
-    compile 'org.eclipse.equinox.common'
-    compile 'org.eclipse.update.configurator'
-    compile 'org.eclipse.core.runtime'
-    compile 'org.eclipse.core.jobs'
-    compile 'org.eclipse.equinox.ds'
-    compile 'org.eclipse.osgi.services'
-    useNativesForRunningPlatform()
-  }
-}
+    source.addMaven('org.eclipse.platform:org.eclipse.osgi:3.14.0')
+    // ...
+    compile 'eclipseOrbit:org.apache.ant:1.10.5.v20190526-1402'
+    // ...
+    compile 'org.osgi:org.osgi.service.component:1.4.0'
+    // ...
 */
 
+  jalviewjsIde name: 'net.sf.j2s.core-3.2.4'
+  jalviewjsIde name: 'com.seeq.eclipse.importprojects-1.4.0'
+
+}
+
+
+
+
+
+
+if (useIde) {
+
+  eclipseMavenCentral {
+    // TODO: How do I add these to the jalviewjsIde configuration and not the compile configuration?
+    release goomph_eclipse_repo_version, {
+
+      //def platformCode="cocoa.macosx.x86_64"
+      //compile 'org.eclipse.swt.'+platformCode
+      useNativesForRunningPlatform()
+      compile 'org.eclipse.swt'
+
+      compile 'org.eclipse.ant.core'
+      compile 'org.eclipse.compare.core'
+      compile 'org.eclipse.core.commands'
+      compile 'org.eclipse.core.contenttype'
+      compile 'org.eclipse.core.jobs'
+      compile 'org.eclipse.core.expressions'
+      compile 'org.eclipse.core.filesystem'
+      compile 'org.eclipse.core.resources'
+      compile 'org.eclipse.core.runtime'
+      compile 'org.eclipse.core.variables'
+      compile 'org.eclipse.equinox.common'
+      compile 'org.eclipse.equinox.ds'
+      compile 'org.eclipse.equinox.app'
+      compile 'org.eclipse.equinox.registry'
+      compile 'org.eclipse.equinox.preferences'
+      compile 'org.eclipse.jface'
+      compile 'org.eclipse.osgi'
+      compile 'org.eclipse.osgi.services'
+      compile 'org.eclipse.ui'
+      compile 'org.eclipse.ui.workbench'
+      compile 'org.eclipse.team.core'
+      compile 'org.eclipse.text'
+
+      compile 'org.eclipse.e4.core.commands'
+      compile 'org.eclipse.e4.core.contexts'
+      compile 'org.eclipse.e4.core.di'
+      compile 'org.eclipse.e4.core.di.annotations'
+      compile 'org.eclipse.e4.core.di.extensions.supplier'
+      compile 'org.eclipse.e4.core.services'
+      compile 'org.eclipse.e4.ui.bindings'
+      compile 'org.eclipse.e4.ui.model.workbench'
+      compile 'org.eclipse.e4.ui.workbench'
+      compile 'org.eclipse.e4.ui.workbench.swt'
+      compile 'org.eclipse.e4.ui.css.core'
+      compile 'org.eclipse.e4.ui.css.swt'
+      compile 'org.eclipse.e4.ui.css.swt.theme'
+      compile 'org.eclipse.e4.ui.services'
+      compile 'org.eclipse.e4.ui.di'
+
+      //compile 'org.eclipse.e4.core.di.internal.extensions'
+
+      // org.eclipse.update.configurator deliberately kept at 3.3.400 see https://github.com/diffplug/goomph/issues/69
+      // this module downloaded in equinoxLaunch configuration (to specify version)
+      //compile 'org.eclipse.update.configurator'
+
+
+    }
+  }
+
+} // if (useIde) {}
 
 
 
@@ -339,7 +409,6 @@ clean {
 
 
 
-def useIde = useGoomph.equals("true")
 
 def eclipseWorkspace
 task jalviewjsSetEclipseWorkspace {
@@ -349,12 +418,15 @@ task jalviewjsSetEclipseWorkspace {
     eclipseWorkspace = file("${buildDir}/tmp/eclipse-workspace")
     //eclipseWorkspace.deleteOnExit()
   } else if (useIde) {
-    GoomphCacheLocations.override_workspaces = file(eclipseWorkspace.getAbsolutePath())
+    com.diffplug.gradle.GoomphCacheLocations.override_workspaces = file(eclipseWorkspace.getAbsolutePath())
     eclipseWorkspace = oomphIde.workspaceRegistry.workspaceDir(project, file(oomphIde.ideDir))
   }
   println("ECLIPSE WORKSPACE: "+eclipseWorkspace.getPath())
 }
 
+
+if (useIde) {
+
 oomphIde {
   repoEclipse goomph_eclipse_version
   jdt {
@@ -380,6 +452,9 @@ oomphIde {
 
   }
 
+  workspaceProp '.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs', {
+    it.put('org.eclipse.jdt.launching.PREF_VM_XML', goomph_PREF_VM_XML)
+  }
 
 
   // CLI ARGS HERE!
@@ -387,65 +462,84 @@ oomphIde {
 
 equinoxLaunch {
   ideJalviewjsBuildSetup {
-    source.addThisProject()
 
-    
-    //source.addMaven('com.ibm.icu:icu4j:65.1')
-    source.addMaven('org.eclipse.birt.runtime:com.ibm.icu:56.1.0.v201601250100')
+    source.addConfiguration(configurations.compile)
+    source.addConfiguration(configurations.jalviewjsIde)
+
+    source.addMaven('eclipseOrbit:org.apache.ant:1.10.5.v20190526-1402')
+    source.addMaven('eclipseOrbit:javax.servlet:3.1.0.v201410161800')
+    source.addMaven('eclipseOrbit:javax.servlet.jsp:2.2.0.v201112011158')
+    source.addMaven('eclipseOrbit:javax.el:2.2.0.v201303151357')
+    source.addMaven('eclipseOrbit:org.apache.batik.constants:1.11.0.v20190515-0436')
+    source.addMaven('eclipseOrbit:org.apache.batik.css:1.11.0.v20190515-0436')
+    source.addMaven('eclipseOrbit:org.apache.batik.i18n:1.11.0.v20190515-0436')
+    source.addMaven('eclipseOrbit:org.apache.batik.util:1.11.0.v20190515-0436')
+    source.addMaven('eclipseOrbit:org.apache.commons.beanutils:1.8.0.v201205091237')
+    source.addMaven('eclipseOrbit:org.apache.commons.collections:3.2.2.v201511171945')
+    source.addMaven('eclipseOrbit:org.apache.xmlgraphics:2.3.0.v20190515-0436')
+    source.addMaven('eclipseOrbit:org.apache.commons.jxpath:1.3.0.v200911051830')
+    source.addMaven('eclipseOrbit:org.apache.commons.io:2.6.0.v20190123-2029')
+    source.addMaven('eclipseOrbit:org.apache.commons.logging:1.2.0.v20180409-1502')
+    source.addMaven('eclipseOrbit:org.jdom:1.1.1.v201101151400')
+    source.addMaven('eclipseOrbit:org.w3c.dom.svg:1.1.0.v201011041433')
+    source.addMaven('eclipseOrbit:org.w3c.dom.smil:1.0.1.v200903091627')
+    source.addMaven('eclipseOrbit:org.w3c.dom.events:3.0.0.draft20060413_v201105210656')
 
+    source.addMaven('org.eclipse.birt.runtime:com.ibm.icu:56.1.0.v201601250100')
     source.addMaven('javax.inject:com.springsource.javax.inject:1.0.0')
-
-    //source.addMaven('org.apache.ant:ant:1.7.0')
-    source.addMaven('org.apache.ant:org.apache.ant:1.6.5')
-
     source.addMaven('org.apache.felix:org.apache.felix.scr:2.1.16')
-
     source.addMaven('org.osgi:org.osgi.framework:1.9.0')
     source.addMaven('org.osgi:org.osgi.service.component:1.4.0')
+    source.addMaven('org.osgi:org.osgi.service.event:1.4.0')
     source.addMaven('org.osgi:org.osgi.util.promise:1.1.1')
     source.addMaven('org.osgi:org.osgi.util.function:1.1.0')
-
-    source.addMaven('org.eclipse.jdt:org.eclipse.jdt.apt.core:3.6.500')
-    //source.addMaven('org.eclipse.jdt:org.eclipse.jdt.apt.ui:3.6.300')
-    //source.addMaven('org.eclipse.jdt:org.eclipse.jdt.compiler.apt:1.3.700')
-    source.addMaven('org.eclipse.jdt:org.eclipse.jdt.core:3.19.0')
-
-    source.addMaven('org.eclipse.platform:org.eclipse.ant.core:3.5.500')
-    source.addMaven('org.eclipse.platform:org.eclipse.compare.core:3.6.600')
-    source.addMaven('org.eclipse.platform:org.eclipse.core.commands:3.9.500')
-    source.addMaven('org.eclipse.platform:org.eclipse.core.contenttype:3.7.400')
-    source.addMaven('org.eclipse.platform:org.eclipse.core.jobs:3.10.500')
-    source.addMaven('org.eclipse.platform:org.eclipse.core.expressions:3.6.500')
-    source.addMaven('org.eclipse.platform:org.eclipse.core.filesystem:1.7.500')
-    source.addMaven('org.eclipse.platform:org.eclipse.core.resources:3.13.500')
-    source.addMaven('org.eclipse.platform:org.eclipse.core.runtime:3.16.0')
-    source.addMaven('org.eclipse.platform:org.eclipse.core.variables:3.4.600')
-    source.addMaven('org.eclipse.platform:org.eclipse.equinox.common:3.10.500')
-    source.addMaven('org.eclipse.platform:org.eclipse.equinox.ds:1.6.0')
-    source.addMaven('org.eclipse.platform:org.eclipse.equinox.app:1.4.300')
-    source.addMaven('org.eclipse.platform:org.eclipse.equinox.registry:3.8.500')
-    source.addMaven('org.eclipse.platform:org.eclipse.equinox.preferences:3.7.500')
-    source.addMaven('org.eclipse.platform:org.eclipse.osgi:3.14.0')
-    source.addMaven('org.eclipse.platform:org.eclipse.team.core:3.8.700')
-    source.addMaven('org.eclipse.platform:org.eclipse.text:3.9.0')
+    //source.addMaven('org.eclipse.jdt:org.eclipse.jdt.apt.core:3.6.500')
+    //source.addMaven('org.eclipse.jdt:org.eclipse.jdt.core:3.19.0')
+    //source.addMaven('org.eclipse.jdt:org.eclipse.jdt.annotation:2.2.300')
+
+    source.addMaven('ecjDeps:org.eclipse.debug.core:3.14.0.v20190812-1404')
+    source.addMaven('ecjDeps:org.eclipse.jdt.annotation:2.2.300.v20190328-1431')
+    source.addMaven('ecjDeps:org.eclipse.jdt.apt.core:3.6.500.v20190703-0914')
+    source.addMaven('ecjDeps:org.eclipse.jdt.core:3.19.0.v20190903-0936')
+    source.addMaven('ecjDeps:org.eclipse.jdt.apt.pluggable.core:1.2.400.v20190626-1334')
+    //source.addMaven('ecjDeps:org.eclipse.jdt.apt.ui:3.6.300.v20190727-1243')
+    source.addMaven('ecjDeps:org.eclipse.jdt.compiler.apt:1.3.700.v20190704-1731')
+    source.addMaven('ecjDeps:org.eclipse.jdt.compiler.tool:1.2.600.v20190322-0450')
+    //source.addMaven('ecjDeps:org.eclipse.jdt.core.manipulation:1.12.100.v20190904-0645')
+    source.addMaven('ecjDeps:org.eclipse.jdt.debug:3.13.100.v20190902-1050')
+    //source.addMaven('ecjDeps:org.eclipse.jdt.debug.ui:3.10.400.v20190815-2202')
+    source.addMaven('ecjDeps:org.eclipse.jdt.doc.user:3.15.400.v20190904-0724')
+    //source.addMaven('ecjDeps:org.eclipse.jdt.junit:3.11.500.v20190809-1613')
+    //source.addMaven('ecjDeps:org.eclipse.jdt.junit.core:3.10.400.v20190625-1910')
+    //source.addMaven('ecjDeps:org.eclipse.jdt.junit4.runtime:1.1.1000.v20190510-0840')
+    //source.addMaven('ecjDeps:org.eclipse.jdt.junit4.runtime:1.1.1000.v20190510-0840')
+    //source.addMaven('ecjDeps:org.eclipse.jdt.junit5.runtime:1.0.600.v20190610-0439')
+    source.addMaven('ecjDeps:org.eclipse.jdt.launching:3.15.0.v20190826-1639')
+    //source.addMaven('ecjDeps:org.eclipse.jdt.ui:3.19.0.v20190827-1733')
+
+    //source.addMaven('ecjDeps:org.eclipse.jdt.launching.macosx:3.4.300.v20190510-0639')
+    //source.addMaven('ecjDeps:org.eclipse.jdt.launching.ui.macosx:1.2.300.v20190510-0639')
+
+    //source.addMaven('')
+
+    // org.eclipse.update.configurator deliberately kept at 3.3.400 see https://github.com/diffplug/goomph/issues/69
     source.addMaven('org.eclipse.platform:org.eclipse.update.configurator:3.3.400')
-    /*
-    source.addMaven('org.eclipse.platform:org.eclipse.:3.')
-    source.addMaven('org.eclipse.platform:org.eclipse.:3.')
-    source.addMaven('org.eclipse.platform:org.eclipse.:3.')
-    source.addMaven('org.eclipse.platform:org.eclipse.:3.')
-    source.addMaven('org.eclipse.platform:org.eclipse.:3.')
-    */
-
 
 
+    launchTask 'ideJalviewjsImport', {
+      it.args = ["-consoleLog", "-nosplash", "--launcher.suppressErrors", "-application", "com.seeq.eclipse.importprojects.headlessimport", "-data", eclipseWorkspace.getPath(), "-import", jalviewDirAbsolutePath ]
+    }
 
     launchTask 'ideJalviewjsBuild', {
-      //it.args = ["-nosplash", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-data", eclipseWorkspace, "-"+jalviewjs_eclipseBuildArg, eclipse_project_name ]
-      //it.args = ["-nosplash", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-"+jalviewjs_eclipseBuildArg, eclipse_project_name ]
-      it.args = ["-consoleLog", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-"+jalviewjs_eclipseBuildArg, eclipse_project_name ]
-      //it.vmArgs = ['-Dosgi.bundles=org.eclipse.core.jobs@2:start,org.eclipse.equinox.common@3:start,org.eclipse.core.runtime@2:start']
-      //it.vmArgs = ['-Dequinox.use.ds=false']
+
+      oomphIde.workspaceProp '.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs', {
+        it.put('org.eclipse.jdt.launching.PREF_VM_XML', goomph_PREF_VM_XML)
+      }
+
+      def args = ["-consoleLog", "-nosplash", "--launcher.suppressErrors", "-application", "org.eclipse.jdt.apt.core.aptBuild", "-data", eclipseWorkspace.getPath(), "-"+jalviewjs_eclipseBuildArg, eclipse_project_name ]
+      println("ARGS="+args)
+
+      it.args = args
 
     }
   }
@@ -480,7 +574,7 @@ task ideSetup {
   dependsOn ideSetupWorkspace
 }
 
-
+} // if (useIde) {}
 
 
 
@@ -798,8 +892,8 @@ task ideBuildSite {
   dependsOn jalviewjsUnzipFiles
   dependsOn jalviewjsCopyResources
   dependsOn jalviewjsCopySiteResources
-  dependsOn ideSetup
-  dependsOn ide
+  // see project.afterEvaluate
+  //dependsOn ideJalviewjsBuild
 }
 
 
@@ -811,14 +905,23 @@ task jalviewjs {
 
 
 project.afterEvaluate {
-  tasks.findByName('ideJalviewjsBuild').dependsOn eclipseProject
-  tasks.findByName('ideJalviewjsBuild').dependsOn eclipseClasspath
-  tasks.findByName('ideJalviewjsBuild').dependsOn eclipseJdt
-  //tasks.findByName('ideJalviewjsBuild').dependsOn ideSetup
-
-  tasks.findByName('ide').dependsOn eclipseProject
-  tasks.findByName('ide').dependsOn eclipseClasspath
-  tasks.findByName('ide').dependsOn eclipseJdt
+
+  if (useIde) {
+    tasks.findByName('ideJalviewjsImport').dependsOn eclipseProject
+    tasks.findByName('ideJalviewjsImport').dependsOn eclipseClasspath
+    tasks.findByName('ideJalviewjsImport').dependsOn eclipseJdt
+    tasks.findByName('ideJalviewjsImport').dependsOn jalviewjsSetEclipseWorkspace
+
+    tasks.findByName('ideJalviewjsBuild').dependsOn tasks.findByName('ideJalviewjsImport')
+    tasks.findByName('ideJalviewjsBuild').dependsOn tasks.findByName('jalviewjsCreateJ2sSettings')
+
+    tasks.findByName('ide').dependsOn eclipseProject
+    tasks.findByName('ide').dependsOn eclipseClasspath
+    tasks.findByName('ide').dependsOn eclipseJdt
+
+    ideBuildSite.dependsOn tasks.findByName('ideJalviewjsBuild')
+  }
+
 }