From a22d557eb1e22e546464d3605e3ed78a49c8fbd0 Mon Sep 17 00:00:00 2001 From: Eike Taegener Date: Thu, 21 Jan 2021 14:00:12 +0100 Subject: [PATCH] [BUILD] Extract dependency export from core into seperate bundle by creating a new bundle called "saros.libratory" which serves as a dependency-container and replaces the previously used Core-bundle ("saros.core") in this role. This was done to reduce unnecessary coupling between the Core- and the Eclipse-bundle caused by the Core-bundle's dependency exports. Now the Core-bundle serves exclusively as a central library for a Saros- implementation without also serving as a dependency container. Since other packages (Intellij, Server,..) also used the Core's dependencies those now get it's dependencies from the new Libratory-bundle too. The following bundle-dependency-relations have been identified and get exported by the Libratory-bundle: (scheme: [bundle(s)]: * dependency of that bundles) [core, eclipse, stf, sever, intellij]: * log4j-1.2-api-2.13.3.jar * log4j-api-2.13.3.jar * log4j-core-2.13.3.jar * picocontainer-2.11.2-patched_relocated.jar [core, eclipse]: * weupnp.jar * smackx-3.4.1.jar [core, eclipse, stf, sever]: * smack-3.4.1.jar (Patches for the "smack"-bundle have also been moved from core to (libratory) Also the "xpp3"-bundle has been moved to libratory which prevents the following error: "java.lang.LinkageError: loader constraint violation: loader [...] previously initiated loading for a different type with name "org/xmlpull/v1/XmlPullParser" The error is triggered by the fact that both the "smack"- and the "xpp3"-bundles contain the library "org.xmlpull" while "xpp3" was previously still contained in the core-bundle. That seemed to cause the error since both bundles tried to load the same library. If both packages (smack, xpp3) are contained in the same bundle (which is now the libratory- and was previously the core-bundle) then it does not seem to cause a problem which is the reason for moving xpp3. The error is explained further in the following two sources: * http://frankkieviet.blogspot.com/2009/03/javalanglinkageerror-loader-constraint.html * https://stackoverflow.com/questions/18127431/spring-java-lang-linkageerror-loader-constraint-violation-loader-previously-in/18315346#18315346 --- .gitignore | 5 ++ build.gradle.kts | 6 +- core/META-INF/MANIFEST.MF | 55 +----------- core/build.gradle.kts | 18 +--- core/build.properties | 3 +- eclipse/META-INF/MANIFEST.MF | 3 +- eclipse/build.gradle.kts | 7 +- eclipse/feature/feature.xml | 7 ++ intellij/build.gradle.kts | 2 + libratory/META-INF/MANIFEST.MF | 64 ++++++++++++++ libratory/build.gradle.kts | 81 ++++++++++++++++++ libratory/build.properties | 6 ++ {core => libratory}/libs/smack-3.4.1.jar | Bin {core => libratory}/libs/smackx-3.4.1.jar | Bin {core => libratory}/libs/weupnp.jar | Bin .../org/jivesoftware/smack/Roster.java | 0 .../org/jivesoftware/smack/RosterEntry.java | 0 .../smack/sasl/SASLGSSAPIMechanism.java | 0 .../smack/sasl/SASLMechanism.java | 0 .../jivesoftware/smack/sasl/smack-357.patch | 0 .../org/jivesoftware/smack/smack-312.patch | 0 .../patches/smack_patches_readme.txt | 0 server/build.gradle.kts | 1 + settings.gradle.kts | 2 +- stf.test/META-INF/MANIFEST.MF | 1 + stf.test/build.gradle.kts | 2 +- stf/META-INF/MANIFEST.MF | 1 + stf/build.gradle.kts | 3 +- 28 files changed, 191 insertions(+), 76 deletions(-) create mode 100644 libratory/META-INF/MANIFEST.MF create mode 100644 libratory/build.gradle.kts create mode 100644 libratory/build.properties rename {core => libratory}/libs/smack-3.4.1.jar (100%) rename {core => libratory}/libs/smackx-3.4.1.jar (100%) rename {core => libratory}/libs/weupnp.jar (100%) rename {core => libratory}/patches/org/jivesoftware/smack/Roster.java (100%) rename {core => libratory}/patches/org/jivesoftware/smack/RosterEntry.java (100%) rename {core => libratory}/patches/org/jivesoftware/smack/sasl/SASLGSSAPIMechanism.java (100%) rename {core => libratory}/patches/org/jivesoftware/smack/sasl/SASLMechanism.java (100%) rename {core => libratory}/patches/org/jivesoftware/smack/sasl/smack-357.patch (100%) rename {core => libratory}/patches/org/jivesoftware/smack/smack-312.patch (100%) rename {core => libratory}/patches/smack_patches_readme.txt (100%) diff --git a/.gitignore b/.gitignore index f4715be5e6..cd2f5d150c 100644 --- a/.gitignore +++ b/.gitignore @@ -28,24 +28,29 @@ buildSrc/.gradle /core/lib /stf/lib /stf.test/lib +/libratory/lib /eclipse/build /core/build /server/build /intellij/build /stf/build /stf.test/build +/libratory/build /eclipse/.classpath /core/.classpath /server/.classpath /intellij/.classpath /stf/.classpath /stf.test/.classpath +/libratory/.classpath /eclipse/.project /core/.project /server/.project /intellij/.project /stf/.project /stf.test/.project +/libratory/.project + .DS_Store /.gradle/ /build/ diff --git a/build.gradle.kts b/build.gradle.kts index 32fbf342cf..1d39873880 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -182,6 +182,7 @@ tasks { register("generateLibAll") { dependsOn( "cleanGenerateLibAll", + ":saros.libratory:generateLib", ":saros.core:generateLib", ":saros.eclipse:generateLib", ":saros.stf:generateLib", @@ -190,6 +191,7 @@ tasks { register("cleanGenerateLibAll") { doLast { + project(":saros.libratory").file("lib").deleteRecursively() project(":saros.eclipse").file("lib").deleteRecursively() project(":saros.core").file("lib").deleteRecursively() project(":saros.stf").file("lib").deleteRecursively() @@ -233,11 +235,13 @@ tasks { dependsOn( ":saros.core:test", ":saros.eclipse:test", - ":saros.eclipse:jar") + ":saros.eclipse:jar", + ":saros.libratory:jar") group = "Build" description = "Builds and tests all modules required by Saros for Eclipse" + from(project(":saros.libratory").tasks.findByName("jar")) from(project(":saros.core").tasks.findByName("jar")) from(project(":saros.eclipse").tasks.findByName("jar")) into("build/distribution/eclipse") diff --git a/core/META-INF/MANIFEST.MF b/core/META-INF/MANIFEST.MF index 9cde0e8e76..3003586c3b 100644 --- a/core/META-INF/MANIFEST.MF +++ b/core/META-INF/MANIFEST.MF @@ -4,6 +4,7 @@ Bundle-Name: Saros Core Bundle-SymbolicName: saros.core Bundle-Version: 0.2.0 Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Require-Bundle: saros.libratory Export-Package: com.thoughtworks.xstream, com.thoughtworks.xstream.annotations, com.thoughtworks.xstream.converters, @@ -94,64 +95,12 @@ Export-Package: com.thoughtworks.xstream, org.apache.commons.lang3, org.apache.commons.lang3.exception, org.apache.commons.lang3.time, - org.apache.commons.lang3.tuple, - org.apache.log4j, - org.apache.log4j.config, - org.apache.log4j.helpers, - org.apache.log4j.spi, - org.apache.logging.log4j, - org.apache.logging.log4j.core, - org.apache.logging.log4j.core.appender, - org.apache.logging.log4j.core.config, - org.apache.logging.log4j.status, - org.apache.logging.log4j.core.lookup, - org.bitlet.weupnp, - org.jivesoftware.smack, - org.jivesoftware.smack.debugger, - org.jivesoftware.smack.filter, - org.jivesoftware.smack.packet, - org.jivesoftware.smack.provider, - org.jivesoftware.smack.proxy, - org.jivesoftware.smack.util, - org.jivesoftware.smackx, - org.jivesoftware.smackx.bytestreams, - org.jivesoftware.smackx.bytestreams.ibb, - org.jivesoftware.smackx.bytestreams.socks5, - org.jivesoftware.smackx.filetransfer, - org.jivesoftware.smackx.muc, - org.jivesoftware.smackx.packet, - org.jivesoftware.smackx.search, - saros.repackaged.picocontainer, - saros.repackaged.picocontainer.adapters, - saros.repackaged.picocontainer.annotations, - saros.repackaged.picocontainer.behaviors, - saros.repackaged.picocontainer.classname, - saros.repackaged.picocontainer.composers, - saros.repackaged.picocontainer.containers, - saros.repackaged.picocontainer.converters, - saros.repackaged.picocontainer.injectors, - saros.repackaged.picocontainer.lifecycle, - saros.repackaged.picocontainer.monitors, - saros.repackaged.picocontainer.parameters, - saros.repackaged.picocontainer.paranamer, - saros.repackaged.picocontainer.references, - saros.repackaged.picocontainer.security, - saros.repackaged.picocontainer.visitors, - org.xmlpull.mxp1, - org.xmlpull.v1 + org.apache.commons.lang3.tuple Bundle-ClassPath: ., - lib/smack-3.4.1.jar, - lib/log4j-core-2.13.3.jar, - lib/log4j-api-2.13.3.jar, - lib/log4j-1.2-api-2.13.3.jar, - lib/smackx-3.4.1.jar, lib/commons-codec-1.3.jar, lib/commons-io-2.0.1.jar, lib/commons-lang3-3.8.1.jar, lib/xstream-1.4.10.jar, - lib/xpp3-1.1.4c.jar, - lib/picocontainer-2.11.2-patched_relocated.jar, - lib/weupnp.jar, lib/libidn-1.15.jar, log4j2.component.properties Bundle-Vendor: Saros Project diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 8821e37e7e..54a0d732b3 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -27,37 +27,27 @@ configurations { sarosEclipse { manifest = file("META-INF/MANIFEST.MF") + excludeManifestDependencies = listOf("saros.libratory") isCreateBundleJar = true isAddPdeNature = true pluginVersionQualifier = versionQualifier } dependencies { + implementation(project(":saros.libratory")) + releaseDep("commons-codec:commons-codec:1.3") releaseDep("commons-io:commons-io:2.0.1") releaseDep("org.apache.commons:commons-lang3:3.8.1") releaseDep("javax.jmdns:jmdns:3.4.1") - releaseDep("xpp3:xpp3:1.1.4c") releaseDep("com.thoughtworks.xstream:xstream:1.4.10") releaseDep("org.gnu.inet:libidn:1.15") - - releaseDep(log4j2ApiVersion) - releaseDep(log4j2CoreVersion) - releaseDep(log4j2BridgeVersion) - - // TODO: use real release. This version is a customized SNAPSHOT - releaseDep(files("libs/weupnp.jar")) - // Workaround until we updated to a newer smack version - releaseDep(files("libs/smack-3.4.1.jar")) - releaseDep(files("libs/smackx-3.4.1.jar")) - // Workaround until we can publish and use (without a user token) the repackaged jar in GitHub Packages - releaseDep(rootProject.files("libs/picocontainer-2.11.2-patched_relocated.jar")) } sourceSets { main { - java.srcDirs("src", "patches") + java.srcDirs("src") resources.srcDirs("resources") } test { diff --git a/core/build.properties b/core/build.properties index dee832fb91..825b1e6c49 100644 --- a/core/build.properties +++ b/core/build.properties @@ -1,5 +1,4 @@ -source.. = src/,\ - patches/ +source.. = src/ output.. = bin/ bin.includes = META-INF/,\ .,\ diff --git a/eclipse/META-INF/MANIFEST.MF b/eclipse/META-INF/MANIFEST.MF index 964becbc8e..ed88ca96dd 100644 --- a/eclipse/META-INF/MANIFEST.MF +++ b/eclipse/META-INF/MANIFEST.MF @@ -20,7 +20,8 @@ Require-Bundle: org.eclipse.ui, org.eclipse.equinox.security, org.junit;resolution:=optional, org.eclipse.jdt.launching;resolution:=optional, - saros.core + saros.core, + saros.libratory Bundle-ActivationPolicy: lazy Export-Package: saros; uses:="org.eclipse.core.runtime, diff --git a/eclipse/build.gradle.kts b/eclipse/build.gradle.kts index 2ddf6d5b04..80a4c08db3 100644 --- a/eclipse/build.gradle.kts +++ b/eclipse/build.gradle.kts @@ -19,7 +19,7 @@ configurations { sarosEclipse { manifest = file("META-INF/MANIFEST.MF") - excludeManifestDependencies = listOf("saros.core", "org.junit", "org.eclipse.gef") + excludeManifestDependencies = listOf("saros.libratory", "saros.core", "org.junit", "org.eclipse.gef") isAddPdeNature = true isCreateBundleJar = true isAddDependencies = true @@ -39,12 +39,14 @@ sourceSets { } dependencies { + implementation(project(":saros.libratory")) implementation(project(":saros.core")) // This is a workaround for https://github.com/saros-project/saros/issues/1086 implementation("org.eclipse.platform:org.eclipse.urischeme:1.1.0") // This is a workaround for https://github.com/saros-project/saros/issues/1114 implementation("org.eclipse.platform:org.eclipse.ui.ide:3.17.200") implementation("org.eclipse.platform:org.eclipse.ui.workbench:3.120.0") + testImplementation(project(path = ":saros.libratory", configuration = "testing")) testImplementation(project(path = ":saros.core", configuration = "testing")) } @@ -113,7 +115,7 @@ tasks { * |- site.xml */ val updateSitePreparation by registering(Copy::class) { - dependsOn(":saros.core:jar", ":saros.eclipse:jar") + dependsOn(":saros.core:jar", ":saros.libratory:jar", ":saros.eclipse:jar") into(updateSiteDirPath) into("features") { @@ -122,6 +124,7 @@ tasks { into("plugins") { from(project.tasks.findByName("jar")) from(project(":saros.core").tasks.findByName("jar")) + from(project(":saros.libratory").tasks.findByName("jar")) } from("update/site.xml") } diff --git a/eclipse/feature/feature.xml b/eclipse/feature/feature.xml index 9f221a3de5..2d96426cb4 100644 --- a/eclipse/feature/feature.xml +++ b/eclipse/feature/feature.xml @@ -380,4 +380,11 @@ Public License instead of this License. version="0.2.0" unpack="false"/> + + diff --git a/intellij/build.gradle.kts b/intellij/build.gradle.kts index dba4be097b..51a963d3f2 100644 --- a/intellij/build.gradle.kts +++ b/intellij/build.gradle.kts @@ -14,6 +14,7 @@ configurations { } dependencies { + implementation(project(":saros.libratory", configuration = "plain")) compile(project(path = ":saros.core", configuration = "plain")) compile("org.easytesting:fest-assert:1.2") @@ -21,6 +22,7 @@ dependencies { compile("org.easytesting:fest-swing:1.2.1") compile("org.easytesting:fest-util:1.1.3") + testImplementation(project(path = ":saros.libratory", configuration = "testing")) testCompile(project(path = ":saros.core", configuration = "testing")) } diff --git a/libratory/META-INF/MANIFEST.MF b/libratory/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..2bf294d8ec --- /dev/null +++ b/libratory/META-INF/MANIFEST.MF @@ -0,0 +1,64 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Saros Libratory +Bundle-SymbolicName: saros.libratory +Bundle-Version: 1.0.0 +Automatic-Module-Name: libratory +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: org.apache.log4j, + org.apache.log4j.config, + org.apache.log4j.helpers, + org.apache.log4j.spi, + org.apache.logging.log4j, + org.apache.logging.log4j.core, + org.apache.logging.log4j.core.appender, + org.apache.logging.log4j.core.config, + org.apache.logging.log4j.status, + org.apache.logging.log4j.core.lookup, + org.bitlet.weupnp, + org.jivesoftware.smack, + org.jivesoftware.smack.debugger, + org.jivesoftware.smack.filter, + org.jivesoftware.smack.packet, + org.jivesoftware.smack.provider, + org.jivesoftware.smack.proxy, + org.jivesoftware.smack.util, + org.jivesoftware.smackx, + org.jivesoftware.smackx.bytestreams, + org.jivesoftware.smackx.bytestreams.ibb, + org.jivesoftware.smackx.bytestreams.socks5, + org.jivesoftware.smackx.entitycaps, + org.jivesoftware.smackx.entitycaps.packet, + org.jivesoftware.smackx.filetransfer, + org.jivesoftware.smackx.muc, + org.jivesoftware.smackx.packet, + org.jivesoftware.smackx.search, + saros.repackaged.picocontainer, + saros.repackaged.picocontainer.adapters, + saros.repackaged.picocontainer.annotations, + saros.repackaged.picocontainer.behaviors, + saros.repackaged.picocontainer.classname, + saros.repackaged.picocontainer.composers, + saros.repackaged.picocontainer.containers, + saros.repackaged.picocontainer.converters, + saros.repackaged.picocontainer.injectors, + saros.repackaged.picocontainer.lifecycle, + saros.repackaged.picocontainer.monitors, + saros.repackaged.picocontainer.parameters, + saros.repackaged.picocontainer.paranamer, + saros.repackaged.picocontainer.references, + saros.repackaged.picocontainer.security, + saros.repackaged.picocontainer.visitors, + org.xmlpull.mxp1, + org.xmlpull.v1 +Bundle-ClassPath: ., + lib/smack-3.4.1.jar, + lib/log4j-core-2.13.3.jar, + lib/log4j-api-2.13.3.jar, + lib/log4j-1.2-api-2.13.3.jar, + lib/smackx-3.4.1.jar, + lib/xpp3-1.1.4c.jar, + lib/picocontainer-2.11.2-patched_relocated.jar, + lib/weupnp.jar +Bundle-Vendor: Saros Project + diff --git a/libratory/build.gradle.kts b/libratory/build.gradle.kts new file mode 100644 index 0000000000..4a639548e4 --- /dev/null +++ b/libratory/build.gradle.kts @@ -0,0 +1,81 @@ +plugins { + id("saros.gradle.eclipse.plugin") +} + +val versionQualifier = ext.get("versionQualifier") as String + +val log4j2ApiVersion = ext.get("log4j2ApiVersion") as String +val log4j2CoreVersion = ext.get("log4j2CoreVersion") as String +val log4j2BridgeVersion = ext.get("log4j2BridgeVersion") as String + +configurations { + // Defined in root build.gradle + val testConfig by getting {} + val releaseDep by getting {} + + // Default configuration + val compile by getting { + extendsFrom(releaseDep) + } + val testCompile by getting { + extendsFrom(testConfig) + } + val plain by creating { + extendsFrom(compile) + } +} + +sarosEclipse { + manifest = file("META-INF/MANIFEST.MF") + isCreateBundleJar = true + isAddPdeNature = true + pluginVersionQualifier = versionQualifier +} + +dependencies { + releaseDep(log4j2ApiVersion) + releaseDep(log4j2CoreVersion) + releaseDep(log4j2BridgeVersion) + + // TODO: use real release. This version is a customized SNAPSHOT + releaseDep(files("libs/weupnp.jar")) + // Workaround until we updated to a newer smack version + releaseDep(files("libs/smack-3.4.1.jar")) + releaseDep(files("libs/smackx-3.4.1.jar")) + releaseDep("xpp3:xpp3:1.1.4c") + // Workaround until we can publish and use (without a user token) the repackaged jar in GitHub Packages + releaseDep(rootProject.files("libs/picocontainer-2.11.2-patched_relocated.jar")) +} + +sourceSets { + main { + java.srcDirs("src", "patches") + resources.srcDirs("resources") + } + test { + java.srcDirs("test/junit") + } +} + +tasks { + + val testJar by registering(Jar::class) { + classifier = "tests" + from(sourceSets["test"].output) + } + + // Jar containing only the core code (the default jar is an osgi bundle + // containing a lib dir with all dependency jars) + val plainJar by registering(Jar::class) { + manifest { + from("META-INF/MANIFEST.MF") + } + from(sourceSets["main"].output) + classifier = "plain" + } + + artifacts { + add("testing", testJar) + add("plain", plainJar) + } +} diff --git a/libratory/build.properties b/libratory/build.properties new file mode 100644 index 0000000000..a7ca936fee --- /dev/null +++ b/libratory/build.properties @@ -0,0 +1,6 @@ +source.. = src/,\ + patches/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + lib/,\ diff --git a/core/libs/smack-3.4.1.jar b/libratory/libs/smack-3.4.1.jar similarity index 100% rename from core/libs/smack-3.4.1.jar rename to libratory/libs/smack-3.4.1.jar diff --git a/core/libs/smackx-3.4.1.jar b/libratory/libs/smackx-3.4.1.jar similarity index 100% rename from core/libs/smackx-3.4.1.jar rename to libratory/libs/smackx-3.4.1.jar diff --git a/core/libs/weupnp.jar b/libratory/libs/weupnp.jar similarity index 100% rename from core/libs/weupnp.jar rename to libratory/libs/weupnp.jar diff --git a/core/patches/org/jivesoftware/smack/Roster.java b/libratory/patches/org/jivesoftware/smack/Roster.java similarity index 100% rename from core/patches/org/jivesoftware/smack/Roster.java rename to libratory/patches/org/jivesoftware/smack/Roster.java diff --git a/core/patches/org/jivesoftware/smack/RosterEntry.java b/libratory/patches/org/jivesoftware/smack/RosterEntry.java similarity index 100% rename from core/patches/org/jivesoftware/smack/RosterEntry.java rename to libratory/patches/org/jivesoftware/smack/RosterEntry.java diff --git a/core/patches/org/jivesoftware/smack/sasl/SASLGSSAPIMechanism.java b/libratory/patches/org/jivesoftware/smack/sasl/SASLGSSAPIMechanism.java similarity index 100% rename from core/patches/org/jivesoftware/smack/sasl/SASLGSSAPIMechanism.java rename to libratory/patches/org/jivesoftware/smack/sasl/SASLGSSAPIMechanism.java diff --git a/core/patches/org/jivesoftware/smack/sasl/SASLMechanism.java b/libratory/patches/org/jivesoftware/smack/sasl/SASLMechanism.java similarity index 100% rename from core/patches/org/jivesoftware/smack/sasl/SASLMechanism.java rename to libratory/patches/org/jivesoftware/smack/sasl/SASLMechanism.java diff --git a/core/patches/org/jivesoftware/smack/sasl/smack-357.patch b/libratory/patches/org/jivesoftware/smack/sasl/smack-357.patch similarity index 100% rename from core/patches/org/jivesoftware/smack/sasl/smack-357.patch rename to libratory/patches/org/jivesoftware/smack/sasl/smack-357.patch diff --git a/core/patches/org/jivesoftware/smack/smack-312.patch b/libratory/patches/org/jivesoftware/smack/smack-312.patch similarity index 100% rename from core/patches/org/jivesoftware/smack/smack-312.patch rename to libratory/patches/org/jivesoftware/smack/smack-312.patch diff --git a/core/patches/smack_patches_readme.txt b/libratory/patches/smack_patches_readme.txt similarity index 100% rename from core/patches/smack_patches_readme.txt rename to libratory/patches/smack_patches_readme.txt diff --git a/server/build.gradle.kts b/server/build.gradle.kts index 34033242a7..9b4f7cdfc7 100644 --- a/server/build.gradle.kts +++ b/server/build.gradle.kts @@ -8,6 +8,7 @@ configurations { } dependencies { + implementation(project(":saros.libratory")) compile(project(":saros.core")) compile("org.apache.commons:commons-collections4:4.2") } diff --git a/settings.gradle.kts b/settings.gradle.kts index 7b9da6e571..e0a7a2d19a 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -7,7 +7,7 @@ plugins { * because the osgi bundle names had to match the project names. */ val prefix = "saros." -listOf("core", "eclipse", "intellij", "server", "lsp", "stf", "stf.test").forEach { dir -> +listOf("core", "eclipse", "libratory", "intellij", "server", "lsp", "stf", "stf.test").forEach { dir -> val projectName = prefix + dir include(projectName) project(":$projectName").projectDir = file(dir) diff --git a/stf.test/META-INF/MANIFEST.MF b/stf.test/META-INF/MANIFEST.MF index d74085838f..fd9a0eea88 100644 --- a/stf.test/META-INF/MANIFEST.MF +++ b/stf.test/META-INF/MANIFEST.MF @@ -7,6 +7,7 @@ Bundle-Vendor: Saros Project Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: saros.eclipse, saros.core, + saros.libratory, org.eclipse.core.runtime, org.eclipse.jface, org.junit diff --git a/stf.test/build.gradle.kts b/stf.test/build.gradle.kts index 17e6e35a08..a66806b9b7 100644 --- a/stf.test/build.gradle.kts +++ b/stf.test/build.gradle.kts @@ -7,7 +7,7 @@ val eclipseVersionNr = ext.get("eclipseVersion") as String sarosEclipse { manifest = file("META-INF/MANIFEST.MF") - excludeManifestDependencies = listOf("org.junit", "saros.eclipse", "saros.core") + excludeManifestDependencies = listOf("org.junit", "saros.eclipse", "saros.core", "saros.libratory") isAddDependencies = true eclipseVersion = eclipseVersionNr } diff --git a/stf/META-INF/MANIFEST.MF b/stf/META-INF/MANIFEST.MF index df6cff9b3f..f53c57dd68 100644 --- a/stf/META-INF/MANIFEST.MF +++ b/stf/META-INF/MANIFEST.MF @@ -16,6 +16,7 @@ Require-Bundle: org.eclipse.ui, org.eclipse.jdt.launching;resolution:=optional, saros.core, saros.eclipse, + saros.libratory, org.junit Bundle-ClassPath: ., lib/org.eclipse.swtbot.ant.junit_2.7.0.201806111355.jar, diff --git a/stf/build.gradle.kts b/stf/build.gradle.kts index efc7af91a5..565f48b842 100644 --- a/stf/build.gradle.kts +++ b/stf/build.gradle.kts @@ -8,7 +8,7 @@ val junitVersion = ext.get("junitVersion") sarosEclipse { manifest = file("META-INF/MANIFEST.MF") - excludeManifestDependencies = listOf("saros.core", "saros.eclipse", "org.junit", "org.eclipse.gef") + excludeManifestDependencies = listOf("saros.core", "saros.eclipse", "org.junit", "org.eclipse.gef", "saros.libratory") isCreateBundleJar = true isAddDependencies = true pluginVersionQualifier = versionQualifier @@ -26,6 +26,7 @@ dependencies { if (junitVersion != null) { compile(junitVersion) } + implementation(project(":saros.libratory")) compile(project(":saros.core")) compile(project(":saros.eclipse")) // This is a workaround for https://github.com/saros-project/saros/issues/1086