How to migrate legacy eclipse rcp feature project from Mars(4.5) to Oxygen(4.7) - eclipse-plugin

I'am working on a RCP project which is currently running on Eclipse Mars(4.5) version. I need to migrate the project to oxygen version. But when i imported the project to workspace and run the application there were lot errors related to plugins. I tried Add-required option in .product file, but still many errors exists. Do any one have idea to how to correctly migrate the project to Oxygen version?
Below i have pasted one of the errors. I require cdt and birt plugin in project so have have already installed latest version of both. For cdt i tried old version also but that didn't work.
Log:
!ENTRY com.contiautomotive.ertools.compare 4 0 2020-06-18 20:44:23.330
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: com.contiautomotive.ertools.compare [4]
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.login
-> Bundle-SymbolicName: com.contiautomotive.ertools.login; bundle-version="6.35.0.qualifier"; singleton:="true"
com.contiautomotive.ertools.login [18]
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.data
-> Bundle-SymbolicName: com.contiautomotive.ertools.data; bundle-version="6.35.0.qualifier"; singleton:="true"
com.contiautomotive.ertools.data [7]
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.codegen
-> Bundle-SymbolicName: com.contiautomotive.ertools.codegen; bundle-version="6.35.0.qualifier"; singleton:="true"
com.contiautomotive.ertools.codegen [3]
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.cm
-> Bundle-SymbolicName: com.contiautomotive.ertools.cm; bundle-version="6.35.0.qualifier"; singleton:="true"
com.contiautomotive.ertools.cm [2]
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.main
-> Bundle-SymbolicName: com.contiautomotive.ertools.main; bundle-version="6.35.0.qualifier"; singleton:="true"
com.contiautomotive.ertools.main [220]
Unresolved requirement: Require-Bundle: org.eclipse.help.webapp
-> Bundle-SymbolicName: org.eclipse.help.webapp; bundle-version="3.9.1.v20170816-0843"; singleton:="true"
org.eclipse.help.webapp [184]
Unresolved requirement: Require-Bundle: org.eclipse.help.base; bundle-version="[4.0.0,5.0.0)"
-> Bundle-SymbolicName: org.eclipse.help.base; bundle-version="4.2.153.v20180330-0640"; singleton:="true"
org.eclipse.help.base [182]
Unresolved requirement: Require-Bundle: org.apache.lucene.analyzers-common; bundle-version="[6.1.0,7.0.0)"
Unresolved requirement: Require-Bundle: org.eclipse.help.base
-> Bundle-SymbolicName: org.eclipse.help.base; bundle-version="4.2.153.v20180330-0640"; singleton:="true"
Unresolved requirement: Require-Bundle: org.eclipse.help.ui
-> Bundle-SymbolicName: org.eclipse.help.ui; bundle-version="4.1.0.v20170311-0931"; singleton:="true"
org.eclipse.help.ui [183]
Unresolved requirement: Require-Bundle: org.eclipse.help.base; bundle-version="[4.0.0,5.0.0)"; visibility:="reexport"
-> Bundle-SymbolicName: org.eclipse.help.base; bundle-version="4.2.153.v20180330-0640"; singleton:="true"
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.cm
-> Bundle-SymbolicName: com.contiautomotive.ertools.cm; bundle-version="6.35.0.qualifier"; singleton:="true"
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.main
-> Bundle-SymbolicName: com.contiautomotive.ertools.main; bundle-version="6.35.0.qualifier"; singleton:="true"
Unresolved requirement: Require-Bundle: com.continental.plm.codesizeparser
-> Bundle-SymbolicName: com.continental.plm.codesizeparser; bundle-version="1.2.0.qualifier"; singleton:="true"
com.continental.plm.codesizeparser [40]
Unresolved requirement: Require-Bundle: org.eclipse.cdt.core
-> Bundle-SymbolicName: org.eclipse.cdt.core; bundle-version="6.4.0.201802261533"; singleton:="true"
org.eclipse.cdt.core [100]
Unresolved requirement: Require-Bundle: com.google.gson
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.main
-> Bundle-SymbolicName: com.contiautomotive.ertools.main; bundle-version="6.35.0.qualifier"; singleton:="true"
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.migrateereleasezip
-> Bundle-SymbolicName: com.contiautomotive.ertools.migrateereleasezip; bundle-version="6.35.0.qualifier"; singleton:="true"
com.contiautomotive.ertools.migrateereleasezip [25]
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.data
-> Bundle-SymbolicName: com.contiautomotive.ertools.data; bundle-version="6.35.0.qualifier"; singleton:="true"
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.main
-> Bundle-SymbolicName: com.contiautomotive.ertools.main; bundle-version="6.35.0.qualifier"; singleton:="true"
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.cm
-> Bundle-SymbolicName: com.contiautomotive.ertools.cm; bundle-version="6.35.0.qualifier"; singleton:="true"
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.cm
-> Bundle-SymbolicName: com.contiautomotive.ertools.cm; bundle-version="6.35.0.qualifier"; singleton:="true"
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.data
-> Bundle-SymbolicName: com.contiautomotive.ertools.data; bundle-version="6.35.0.qualifier"; singleton:="true"
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.cm
-> Bundle-SymbolicName: com.contiautomotive.ertools.cm; bundle-version="6.35.0.qualifier"; singleton:="true"
Unresolved requirement: Require-Bundle: com.contiautomotive.ertools.main
-> Bundle-SymbolicName: com.contiautomotive.ertools.main; bundle-version="6.35.0.qualifier"; singleton:="true"
at org.eclipse.osgi.container.Module.start(Module.java:444)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1634)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1613)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1585)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1528)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

You need to work through the chains of unresolved requirements to see what the issue is. Check that the listed plug-ins are actually being included in the build. The list of plug-ins changes between releases.
In what you show one issue is org.apache.lucene.analyzers-common. This is new in Eclipse Oxygen so it looks like you need to update the list of plug-ins being included in the build.
If you are using a .product file use the 'Add Required' button to add any missing required plug-in. Note that using a feature based build rather than plug-in based deals with this much more easily.

Related

Eclipse 2018-12 has dependency to Windows, Linux and MaxOS

I just updated my application's org.eclipse.e4.rcp feature from Eclipse 4.9. to 4.10 (or 2012-09 to 2012-12). Now I get the exception:
[ERROR] Cannot resolve target definition:
[ERROR] Problems resolving provisioning plan.:
[ERROR] Unable to satisfy dependency from org.eclipse.swt 3.109.0.v20181204-1801 to org.eclipse.equinox.p2.iu; org.eclipse.swt.gtk.linux.x86_64 [3.109.0.v20181204-1801,3.109.0.v20181204-1801].
[ERROR] Unable to satisfy dependency from org.eclipse.swt 3.109.0.v20181204-1801 to org.eclipse.equinox.p2.iu; org.eclipse.swt.cocoa.macosx.x86_64 [3.109.0.v20181204-1801,3.109.0.v20181204-1801].
[ERROR] Unable to satisfy dependency from org.eclipse.swt 3.109.0.v20181204-1801 to org.eclipse.equinox.p2.iu; org.eclipse.swt.gtk.linux.ppc64le [3.109.0.v20181204-1801,3.109.0.v20181204-1801].
Both the .target file and the pom.xml have defined the target platform as being for Windows only:
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86_64</arch>
</environment>
And the target file has additionally includeAllPlatforms="false". If I set it to true, I get the very similar exception:
[ERROR] Software being installed: org.acme.plugin 7.0.0.qualifier
[ERROR] Missing requirement: org.eclipse.swt 3.109.0.v20181204-1801 requires 'org.eclipse.equinox.p2.iu; org.eclipse.swt.gtk.linux.x86_64 [3.109.0.v20181204-1801,3.109.0.v20181204-1801]' but it could not be found
[ERROR] Cannot satisfy dependency: org.acme.plugin 7.0.0.qualifier depends on: java.package; org.eclipse.jface.preference 0.0.0
[ERROR] Cannot satisfy dependency: org.eclipse.jface 3.15.0.v20181123-1505 depends on: osgi.bundle; org.eclipse.swt [3.104.0,4.0.0)
If I add the fragments to the target platform, I get the following message (which is completely understandable):
org.eclipse.swt.gtk.linux.x86_64 3.109.0.v20181204-1801 cannot be installed in this environment because its filter is not applicable. -> [Help 1]
Setting the target platform to planner mode doesn't work. Neither does setting <org.eclipse.swt.buildtime>true</org.eclipse.swt.buildtime> in the pom.xml (false doesn't work either).
Looking at the XML file of the feature I can't see anything wrong with it (the fragments are defined for their OS only), still the target platform wants to haven the fragments for Linux and MacOS, even though I'm on Windows.
The target platform looks like this (yet again, it works if I replace 2018-12 with 2018-09):
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
<repository location="https://download.eclipse.org/releases/2018-12/"/>
<unit id="org.eclipse.e4.rcp.feature.group" version="0.0.0" />
<unit id="org.eclipse.emf.common.feature.group" version="0.0.0" />
<unit id="org.eclipse.emf.ecore.feature.group" version="0.0.0" />
<unit id="org.eclipse.equinox.executable.feature.group" version="0.0.0" />
<unit id="org.eclipse.rcp.feature.group" version="0.0.0" />
</location>
And it's hooked in the pom.xml like this:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<configuration>
<resolver>p2</resolver>
<target>
<artifact>
<groupId>groupId</groupId>
<artifactId>org.acme.plugin.build</artifactId>
<version>7.0.0-SNAPSHOT</version>
<classifier>platform</classifier>
</artifact>
</target>
<ignoreTychoRepositories>true</ignoreTychoRepositories>
<environments>
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86_64</arch>
</environment>
</environments>
</configuration>
</plugin>
What is the problem? How can I fix it?
Who would have thought? It's the exact same Eclipse bug as in this question again. For some reason our build process gives preference to the plug-ins in Maven Central over the ones in the Eclipse repository. Since they have broken Maven dependencies, and since Tycho (obviously) still evaluates these dependencies, that breaks the build.
In our case the fix was as easy as moving Maven Central down below the Eclipse repo in our target platform.

How to add SWT plugins eclipse luna

I imported my eclipse plugin project in to eclipse luna.
In project all plugins are showing compile time error. Error is org.eclipse.swt is missing.
Eclipse luna has only org.eclipse.e4.swt plugin.
how to import org.eclipse.swt plugin in eclipse luna?
Please help me.
Note : My project developed in eclipse helios IDE.
following MAINFEST.MF
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name.0
Bundle-SymbolicName: com.chinna.cim.smash;singleton:=true
Bundle-Version: 4.0.2
Bundle-Activator: com.chinna.cim.smash.SMASHPlugin
Bundle-Vendor: %Bundle-Vendor.0
Bundle-Localization: plugin
Eclipse-ExtensibleAPI: true
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.core.resources,
org.eclipse.ui.ide,
org.eclipse.ui.forms,
org.eclipse.ui.editors,
org.eclipse.jface.text,
com.ami.megarac.utils
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: patch.jar,
com.ami.megrac.utils manifest file
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Utils Plug-in
Bundle-SymbolicName: com.ami.megarac.utils;singleton:=true
Bundle-Version: 4.0.2
Bundle-Activator: com.ami.megarac.utils.UtilsPlugin
Bundle-Vendor: American Megatrends Inc
Eclipse-ExtensibleAPI: true
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.core.filesystem,
org.eclipse.ui.console,
org.eclipse.core.resources,
org.eclipse.core.resources,
google.api.translate,
org.eclipse.ui.forms,
com.ami.megarac.MegaRACDevStudio,
org.eclipse.ui.ide,
org.eclipse.jface.text,
org.eclipse.ui.editors,
org.eclipse.cdt.core,
org.eclipse.compare
Export-Package: com.ami.megarac.utils,
com.ami.megarac.utils.cdt,
com.ami.megarac.utils.console,
com.ami.megarac.utils.copyright,
com.ami.megarac.utils.file,
com.ami.megarac.utils.filesystem,
com.ami.megarac.utils.ini.parser,
com.ami.megarac.utils.ini.texteditor,
com.ami.megarac.utils.jobs,
com.ami.megarac.utils.localize,
com.ami.megarac.utils.localize.actions;
uses:="com.ami.megarac.utils.localize.wizards,
org.eclipse.jface.operation,
org.eclipse.core.runtime,
org.eclipse.ui,
org.eclipse.jface.action,
com.ami.megarac.utils.localize.model,
org.eclipse.core.resources,
org.eclipse.jface.viewers,
org.eclipse.swt.widgets",
com.ami.megarac.utils.localize.builder;
uses:="org.eclipse.core.runtime,
com.ami.megarac.utils.localize.model,
org.eclipse.core.resources,
org.eclipse.swt.widgets,
org.w3c.dom,
org.xml.sax.helpers,
org.xml.sax",
com.ami.megarac.utils.localize.dialogs,
com.ami.megarac.utils.localize.model,
com.ami.megarac.utils.localize.wizards,
com.ami.megarac.utils.mapmodel,
com.ami.megarac.utils.mvc,
com.ami.megarac.utils.resources,
com.ami.megarac.utils.resources.compare,
com.ami.megarac.utils.translator,
com.ami.megarac.utils.translator.input,
com.ami.megarac.utils.ui.forms.custom,
com.ami.megarac.utils.ui.forms.events,
com.ami.megarac.utils.ui.forms.model,
com.ami.megarac.utils.ui.forms.part,
com.ami.megarac.utils.ui.forms.part.controls,
com.ami.megarac.utils.ui.forms.transfer,
com.ami.megarac.utils.xml,
com.memetix.mst,
jboolexpr,
org.json,
org.json.simple,
org.json.simple.parser
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: patch.jar,
lib/microsoft-translator-java-api-0.6.2-jar-with-dependencies.jar,
.,
lib/jboolexpr-1.2.jar,
lib/org.json.jar

Why is are classes from a required bundle not found while building an eclipse plugin

I'm using Xtext and have several plugins.
One is called harpo.plugin. In its Manifest.MF file we have
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Plugin
Bundle-SymbolicName: harpo.plugin;singleton:=true
Bundle-Version: 1.0.0.qualifier
Export-Package: harpo.plugin;uses:="org.eclipse.xtext,org.eclipse.xtext.common.types,com.google.inject",
harpo.plugin.editor;uses:="org.eclipse.emf.ecore,org.eclipse.emf.common.util",
[... much omitted ... ]
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Import-Package: org.apache.log4j,
org.eclipse.jface.viewers,
org.eclipse.ui
Bundle-ActivationPolicy: lazy
Now a second plugin called harpo.plugin.ui depends on harpo.plugin. Its Manifest.MF looks like this
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Ui
Bundle-SymbolicName: harpo.plugin.ui;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: harpo.plugin.ui.internal.EditorActivator
Export-Package: harpo.plugin.ui,
harpo.plugin.ui.contentassist,
harpo.plugin.ui.contentassist.antlr,
harpo.plugin.ui.internal,
harpo.plugin.ui.quickfix
Require-Bundle: harpo.plugin;bundle-version="1.0.0",
[...much omitted...]
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Import-Package: org.apache.log4j
Bundle-ActivationPolicy: lazy
Now when I compile the latter plugin, all the java files that depend on classes defined in harpo.plugin.editor have errors Type can not be resolved.
My question: What could cause these errors?
If I add the harpo.plugin project to the "Build path" of harpo.plugin.ui project, all compiles. But I shouldn't have to do that, right? In fact I probably shouldn't do that, right?

IBM MobileFirst Platform Studio is broken after updating to version 7.0.0.00-20150402-2001

I updated my IBM MobileFirst Platform Studio to the newest version 7.0.0.00-20150402-2001 via Eclipse > Help > Check for Updates. With the result that MobileFirst is no longer running. I am missing the MFPF special Run commands, in “About Eclipse” MobileFirst is missing, and .metadata.log contains tons of errors, starting with
org.osgi.framework.BundleException: Could not resolve module: com.ibm.imp.worklight.core [668]
Unresolved requirement: Require-Bundle: com.worklight.worklight-shared-common; bundle-version="7.0.0"
-> Bundle-SymbolicName: com.worklight.worklight-shared-common; bundle-version="7.0.0.00-20150402-2001"; singleton:="true"
com.worklight.worklight-shared-common [689]
Unresolved requirement: Require-Bundle: com.worklight.worklight-3rd-parties; bundle-version="7.0.0"
-> Bundle-SymbolicName: com.worklight.worklight-3rd-parties; bundle-version="7.0.0.00-20150402-2001"; singleton:="true"
com.worklight.worklight-3rd-parties [685]
Unresolved requirement: Import-Package: org.bouncycastle145.jce.provider
-> Export-Package: org.bouncycastle145.jce.provider; bundle-version="7.0.0.00-20150402-2001"; bundle-symbolic-name="com.worklight.worklight-3rd-parties"; version="1.45.0"
Unresolved requirement: Import-Package: org.bouncycastle145.asn1
-> Export-Package: org.bouncycastle145.asn1; bundle-version="7.0.0.00-20150402-2001"; bundle-symbolic-name="com.worklight.worklight-3rd-parties"; version="1.45.0"
Unresolved requirement: Import-Package: com.google.gson.annotations; version="[2.3.0,3.0.0)"
-> Export-Package: com.google.gson.annotations; bundle-version="7.0.0.00-20150402-2001"; bundle-symbolic-name="com.worklight.worklight-3rd-parties"; version="2.3.1"
Unresolved requirement: Import-Package: org.bouncycastle145.x509
-> Export-Package: org.bouncycastle145.x509; bundle-version="7.0.0.00-20150402-2001"; bundle-symbolic-name="com.worklight.worklight-3rd-parties"; version="1.45.0"
Unresolved requirement: Import-Package: com.google.gson; version="[2.3.0,3.0.0)"
-> Export-Package: com.google.gson; bundle-version="7.0.0.00-20150402-2001"; bundle-symbolic-name="com.worklight.worklight-3rd-parties"; version="2.3.1"
Unresolved requirement: Import-Package: com.ibm.json.java
-> Export-Package: com.ibm.json.java; bundle-version="7.0.0.00-20150402-2001"; bundle-symbolic-name="com.worklight.worklight-3rd-parties"; version="7.0.0.00-20150402-2001"
Even the uninstall fails with No action found for: com.worklight.studio.plugin.Clean.
How can I fix my MFPF installation?
With fatal errors like the one described, while I am not sure why that happened, the best course of action is to use a fresh instance of Eclipse with a new workspace and then re-install the MFP Studio plug-in from the Eclipse Marketplace.

How to build Eclipse plugin project with dependency on Eclipse Birt?

I have a set of Maven projects that I would like to migrate to SBT.
Tne only thing stopping me to do so, it's a project that is an Eclipse plugin, that has dependencies with Eclipse Birt.
The Tycho plugin for Maven, handles all the dependencies. This tool isn't available in SBT. I've found sbt-tycho plugin for SBT, but it looks like unmaintained (3 years with no activity).
Maybe I could build my Eclipse plugin with Maven, and the rest of projects with SBT. But don't know if this is possible.
Other alternative is to use Gradle, by means of the wuff plugin.
Related questions in StackOverflow:
How to build an eclipse plugin with sbt and sbt-osgi?
Can Apache Ivy handle dependencies in p2 repositories?
But I prefer SBT before Maven or Gradle, in order not to introduce yet another language besides Scala.
Is it possible to have all projects in SBT except the one that uses Tycho (Eclipse plugin)?. The Eclipse plugin project is a dependency of the main project, and it rarely changes.
Any ideas?
Update 1: additional information. Eclipse plugins use the p2 repository format for handling dependencies, instead of the standard Maven repository used for Gradle, Maven, Ivy and SBT. That's why special tools are needed. My custom Eclipse plugin has over 100 indirect p2 dependencies.
Update 2
pom.xml of my Eclipse plugin:
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>myCompany</groupId>
<artifactId>myPlugin</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<properties>
<tycho.version>0.19.0</tycho.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<repository>
<id>eclipse</id>
<url>http://download.eclipse.org/releases/kepler</url>
<layout>p2</layout>
</repository>
<repository>
<id>babel</id>
<url>http://download.eclipse.org/technology/babel/update-site/R0.11.1/kepler</url>
<layout>p2</layout>
</repository>
<repository>
<id>logback</id>
<url>http://logback.qos.ch/p2/</url>
<layout>p2</layout>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>${tycho.version}</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
<configuration>
<resolver>p2</resolver>
<environments>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86</arch>
</environment>
</environments>
</configuration>
</plugin>
</plugins>
</build>
</project>
It appears that the support for Eclipse updatesite with OSGi bundles is already available in Ivy. It doesn't however mean that the resolver can be used directly in sbt (I have never read about it and seen it in use before so I might be mistaken).
There's a way to include any resolver of Ivy in sbt using externalIvySettings():
create the configuration files as you would for Maven (pom.xml) or Ivy
(ivy.xml and optionally ivysettings.xml). External configuration is
selected by using one of the following expressions.
There's Ivy settings (resolver configuration) with externalIvySettings and Ivy file (dependency configuration) with externalIvyFile.
My guess is that you might be quite successful leveraging the support. Just add externalIvySettings and/or externalIvyFile to build.sbt, and create ivy.xml in the top-level directory of the Eclipse plugin's project with a declaration of Ivy's Eclipse updatesite resolver.
You may want to explore the support with the following build.sbt:
externalIvySettings()
libraryDependencies += "bundle" % "org.eclipse.swt.cocoa.macosx.x86_64" % "3.100.1.v4234e"
Place ivysettings.xml in the project's top-level directory (alongside build.sbt):
<ivysettings>
<settings defaultResolver="chain"/>
<resolvers>
<chain name="chain">
<ibiblio name="central" m2compatible="true"/>
<updatesite name="eclipse-juno" url="http://download.eclipse.org/releases/juno" />
</chain>
</resolvers>
</ivysettings>
With the two files above I could update up to failing on some packages:
> update
[info] Updating {file:/Users/jacek/sandbox/eclipse-p2/}eclipse-p2...
:: loading settings :: file = /Users/jacek/sandbox/eclipse-p2/ivysettings.xml
[warn] module not found: package#org.eclipse.swt.accessibility2;[0.0.0,)
[warn] ==== central: tried
[warn] http://repo1.maven.org/maven2/package/org.eclipse.swt.accessibility2/[revision]/org.eclipse.swt.accessibility2-[revision].pom
[warn] -- artifact package#org.eclipse.swt.accessibility2;[0.0.0,)!org.eclipse.swt.accessibility2.jar:
[warn] http://repo1.maven.org/maven2/package/org.eclipse.swt.accessibility2/[revision]/org.eclipse.swt.accessibility2-[revision].jar
[warn] ==== eclipse-juno: tried
[warn] module not found: package#org.mozilla.xpcom;[0.0.0,)
[warn] ==== central: tried
[warn] http://repo1.maven.org/maven2/package/org.mozilla.xpcom/[revision]/org.mozilla.xpcom-[revision].pom
[warn] -- artifact package#org.mozilla.xpcom;[0.0.0,)!org.mozilla.xpcom.jar:
[warn] http://repo1.maven.org/maven2/package/org.mozilla.xpcom/[revision]/org.mozilla.xpcom-[revision].jar
[warn] ==== eclipse-juno: tried
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: package#org.eclipse.swt.accessibility2;[0.0.0,): not found
[warn] :: package#org.mozilla.xpcom;[0.0.0,): not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn] Note: Unresolved dependencies path:
[warn] package:org.eclipse.swt.accessibility2:[0.0.0,)
[warn] +- bundle:org.eclipse.swt:[3.0.0,4.0.0)
[warn] +- bundle:org.eclipse.swt.cocoa.macosx.x86_64:3.100.1.v4234e (/Users/jacek/sandbox/eclipse-p2/build.sbt#L3-4)
[warn] +- default:eclipse-p2_2.10:0.1-SNAPSHOT
[warn] package:org.mozilla.xpcom:[0.0.0,)
[warn] +- bundle:org.eclipse.swt:[3.0.0,4.0.0)
[warn] +- bundle:org.eclipse.swt.cocoa.macosx.x86_64:3.100.1.v4234e (/Users/jacek/sandbox/eclipse-p2/build.sbt#L3-4)
[warn] +- default:eclipse-p2_2.10:0.1-SNAPSHOT
Another solution (I haven't tried yet) is to use the sbt-osgi-manager plugin, designed for this purpose. It is actively mantained.
I'll update this answer with my experiences.
UPDATE: it doesn't work for me in the first try.
The final solution is to use a standard Maven repository for the Birt plugins. This solution is good for the embedding the Birt runtime, but not for a complete RCP app.