renatoathaydes / osgi-run Goto Github PK
View Code? Open in Web Editor NEWOsgi-Run - A Gradle plugin to make the development of modular applications using OSGi completely painless
License: Apache License 2.0
Osgi-Run - A Gradle plugin to make the development of modular applications using OSGi completely painless
License: Apache License 2.0
[feature request] please vote with 👍 from the top right menu
run any time any osgi container with runOsgiFelix
, runOsgiEquinox
, runOsgiKnopflerfish
Currently this plugin makes a great job to run one of 3 major OSGi containers.
However what container to run is written inside build.gradle
. To try other container user have to change.
What if user could run any time any osgi container with gradle runOsgiFelix
, gradle runOsgiEquinox
, gradle runOsgiKnopflerfish
That would still require some preferences inside build.gradle
, but they may look similar to
runOsgi {
felix{
}
equinox{
configSettings = 'equinox' // use Equinox's config file instead of Felix's
osgiMain = 'org.eclipse.osgi:org.eclipse.osgi:3.7.1' // use a specific version of Equinox
javaArgs = '-DmyProp=someValue' // pass some args to the Java process
programArgs = '-console' // pass some arguments to the Equinox starter
}
bundles += allprojects.toList() + IPOJO_BUNDLE // bundles are: this project + subprojects + IPojo
config += [ 'osgi.clean': true ] // add properties to the Equinox config
outDir = 'runtime' // the environment will be built at "${project.buildDir}/runtime"
copyManifestTo file( 'auto-generated/MANIFEST.MF' ) // make the manifest visible to the IDE for OSGi support
}
that is additional preferences not to runOsgi, but specific container option.
then there can be runOsgi.default = felix
(or runOsgi { felix { default = true ...
) to specify for use with $ gradle runOsgi
Hello,
OsgiRuntimeTaskCreator.groovy:140 always creates equinox configs with all bundles set to "..:@start". This will result in ugly exceptions when trying to start fragment bundles, or even prevent configurations from running properly when bundles are required to be installed, but not started.
Is there any way to write configs with bundles not set to "..@start"?
Thank you!
the stacktrace is:
FAILURE: Build failed with an exception.
What went wrong:
A problem occurred configuring root project 'osgi-run-test'.
Could not resolve all dependencies for configuration ':classpath'.
Could not find com.athaydes.gradle.osgi:osgi-run-core:1.0-SNAPSHOT.
Searched in the following locations:
file:/Users/marcoscezar/.m2/repository/com/athaydes/gradle/osgi/osgi-run-core/1.0-SNAPSHOT/maven-metadata.xml
file:/Users/marcoscezar/.m2/repository/com/athaydes/gradle/osgi/osgi-run-core/1.0-SNAPSHOT/osgi-run-core-1.0-SNAPSHOT.pom
file:/Users/marcoscezar/.m2/repository/com/athaydes/gradle/osgi/osgi-run-core/1.0-SNAPSHOT/osgi-run-core-1.0-SNAPSHOT.jar
http://repo1.maven.org/maven2/com/athaydes/gradle/osgi/osgi-run-core/1.0-SNAPSHOT/maven-metadata.xml
http://repo1.maven.org/maven2/com/athaydes/gradle/osgi/osgi-run-core/1.0-SNAPSHOT/osgi-run-core-1.0-SNAPSHOT.pom
http://repo1.maven.org/maven2/com/athaydes/gradle/osgi/osgi-run-core/1.0-SNAPSHOT/osgi-run-core-1.0-SNAPSHOT.jar
Required by:
:osgi-run-test:unspecified
Could not find com.athaydes.gradle.osgi:ipojo-plugin:1.0-SNAPSHOT.
Searched in the following locations:
file:/Users/marcoscezar/.m2/repository/com/athaydes/gradle/osgi/ipojo-plugin/1.0-SNAPSHOT/maven-metadata.xml
file:/Users/marcoscezar/.m2/repository/com/athaydes/gradle/osgi/ipojo-plugin/1.0-SNAPSHOT/ipojo-plugin-1.0-SNAPSHOT.pom
file:/Users/marcoscezar/.m2/repository/com/athaydes/gradle/osgi/ipojo-plugin/1.0-SNAPSHOT/ipojo-plugin-1.0-SNAPSHOT.jar
http://repo1.maven.org/maven2/com/athaydes/gradle/osgi/ipojo-plugin/1.0-SNAPSHOT/maven-metadata.xml
http://repo1.maven.org/maven2/com/athaydes/gradle/osgi/ipojo-plugin/1.0-SNAPSHOT/ipojo-plugin-1.0-SNAPSHOT.pom
http://repo1.maven.org/maven2/com/athaydes/gradle/osgi/ipojo-plugin/1.0-SNAPSHOT/ipojo-plugin-1.0-SNAPSHOT.jar
Required by:
:osgi-run-test:unspecified
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Repetitive executions of the "runOsgi" task fail with an:
Execution failed for task ':runOsgi'.
> None of the osgiMain jars [[]] contain a Main-Class in its Manifest.
Please specify a runnable jar as a osgiMain dependency or the osgiMain property.
./gradlew cleanOsgiRuntime runOsgi
works fine.
plugins {
id "com.athaydes.osgi-run" version "1.5.0"
}
$ ./gradlew --version
------------------------------------------------------------
Gradle 2.4
------------------------------------------------------------
Build time: 2015-05-05 08:09:24 UTC
Build number: none
Revision: 5c9c3bc20ca1c281ac7972643f1e2d190f2c943c
Groovy: 2.3.10
Ant: Apache Ant(TM) version 1.9.4 compiled on April 29 2014
JVM: 1.8.0_101 (Oracle Corporation 25.101-b13)
OS: Linux 4.4.0-38-generic amd64
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':runOsgi'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:310)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:88)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62)
at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:68)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:55)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:90)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:50)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:27)
at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:40)
at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:169)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at org.gradle.launcher.Main.doAction(Main.java:33)
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
Caused by: org.gradle.api.GradleException: None of the osgiMain jars [[]] contain a Main-Class in its Manifest.
Please specify a runnable jar as a osgiMain dependency or the osgiMain property.
at com.athaydes.gradle.osgi.OsgiRuntimeTaskCreator.selectMainClass(OsgiRuntimeTaskCreator.groovy:105)
at com.athaydes.gradle.osgi.OsgiRuntimeTaskCreator$selectMainClass$1.callStatic(Unknown Source)
at com.athaydes.gradle.osgi.OsgiRunner.run(OsgiRunner.groovy:19)
at com.athaydes.gradle.osgi.OsgiRunner$run.call(Unknown Source)
at com.athaydes.gradle.osgi.OsgiRunPlugin$_runOsgiTask_closure5.doCall(OsgiRunPlugin.groovy:95)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:558)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:539)
at org.gradle.api.internal.tasks.TaskMutator$1.execute(TaskMutator.java:77)
at org.gradle.api.internal.tasks.TaskMutator$1.execute(TaskMutator.java:73)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
... 49 more
When I try, I get the following errors:
Problem creating boot delegation class loader: java.lang.reflect.InaccessibleObjectException: Unable to make protected java.security.SecureClassLoader(java.lang.ClassLoader) accessible: module java.base does not "opens java.security" to unnamed module @2957fcb0
org.osgi.framework.BundleException: Unable to resolve jline [1](R 1.0): missing requirement [jline [1](R 1.0)] osgi.ee; (&(osgi.ee=JavaSE)(version=1.5)) Unresolved requirements: [[jline [1](R 1.0)] osgi.ee; (&(osgi.ee=JavaSE)(version=1.5))]
ERROR: Bundle jline [1] Error starting file:/home/angle/Documents/Programming/Java/OSGIGradleSandbox/build/osgi/bundle/jline-2.14.2.jar (org.osgi.framework.BundleException: Unable to resolve jline [1](R 1.0): missing requirement [jline [1](R 1.0)] osgi.ee; (&(osgi.ee=JavaSE)(version=1.5)) Unresolved requirements: [[jline [1](R 1.0)] osgi.ee; (&(osgi.ee=JavaSE)(version=1.5))])
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4148)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2118)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1372)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.base/java.lang.Thread.run(Thread.java:833)
org.osgi.framework.BundleException: Unable to resolve org.apache.felix.scr [2](R 2.0): missing requirement [org.apache.felix.scr [2](R 2.0)] osgi.ee; (|(&(osgi.ee=JavaSE)(version=1.6))(&(osgi.ee=JavaSE/compact1)(version=1.8))) Unresolved requirements: [[org.apache.felix.scr [2](R 2.0)] osgi.ee; (|(&(osgi.ee=JavaSE)(version=1.6))(&(osgi.ee=JavaSE/compact1)(version=1.8)))]
ERROR: Bundle org.apache.felix.scr [2] Error starting file:/home/angle/Documents/Programming/Java/OSGIGradleSandbox/build/osgi/bundle/org.apache.felix.scr-2.0.12.jar (org.osgi.framework.BundleException: Unable to resolve org.apache.felix.scr [2](R 2.0): missing requirement [org.apache.felix.scr [2](R 2.0)] osgi.ee; (|(&(osgi.ee=JavaSE)(version=1.6))(&(osgi.ee=JavaSE/compact1)(version=1.8))) Unresolved requirements: [[org.apache.felix.scr [2](R 2.0)] osgi.ee; (|(&(osgi.ee=JavaSE)(version=1.6))(&(osgi.ee=JavaSE/compact1)(version=1.8)))])
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4148)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2118)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1372)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.base/java.lang.Thread.run(Thread.java:833)
org.osgi.framework.BundleException: Unable to resolve com.athaydes.osgiaas.cli-api [4](R 4.0): missing requirement [com.athaydes.osgiaas.cli-api [4](R 4.0)] osgi.wiring.package; (osgi.wiring.package=javax.annotation) Unresolved requirements: [[com.athaydes.osgiaas.cli-api [4](R 4.0)] osgi.wiring.package; (osgi.wiring.package=javax.annotation)]
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4148)
ERROR: Bundle com.athaydes.osgiaas.cli-api [4] Error starting file:/home/angle/Documents/Programming/Java/OSGIGradleSandbox/build/osgi/bundle/osgiaas-cli-api-0.7.jar (org.osgi.framework.BundleException: Unable to resolve com.athaydes.osgiaas.cli-api [4](R 4.0): missing requirement [com.athaydes.osgiaas.cli-api [4](R 4.0)] osgi.wiring.package; (osgi.wiring.package=javax.annotation) Unresolved requirements: [[com.athaydes.osgiaas.cli-api [4](R 4.0)] osgi.wiring.package; (osgi.wiring.package=javax.annotation)])
at org.apache.felix.framework.Felix.startBundle(Felix.java:2118)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1372)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.base/java.lang.Thread.run(Thread.java:833)
ERROR: Bundle com.athaydes.osgiaas.cli-core [5] Error starting file:/home/angle/Documents/Programming/Java/OSGIGradleSandbox/build/osgi/bundle/osgiaas-cli-core-0.7.jar (org.osgi.framework.BundleException: Unable to resolve com.athaydes.osgiaas.cli-core [5](R 5.0): missing requirement [com.athaydes.osgiaas.cli-core [5](R 5.0)] osgi.wiring.package; (&(osgi.wiring.package=com.athaydes.osgiaas.api.env)(version>=0.7.0)(!(version>=1.0.0))) [caused by: Unable to resolve com.athaydes.osgiaas.common [6](R 6.0): missing requirement [com.athaydes.osgiaas.common [6](R 6.0)] osgi.wiring.package; (osgi.wiring.package=javax.annotation)] Unresolved requirements: [[com.athaydes.osgiaas.cli-core [5](R 5.0)] osgi.wiring.package; (&(osgi.wiring.package=com.athaydes.osgiaas.api.env)(version>=0.7.0)(!(version>=1.0.0)))])
org.osgi.framework.BundleException: Unable to resolve com.athaydes.osgiaas.cli-core [5](R 5.0): missing requirement [com.athaydes.osgiaas.cli-core [5](R 5.0)] osgi.wiring.package; (&(osgi.wiring.package=com.athaydes.osgiaas.api.env)(version>=0.7.0)(!(version>=1.0.0))) [caused by: Unable to resolve com.athaydes.osgiaas.common [6](R 6.0): missing requirement [com.athaydes.osgiaas.common [6](R 6.0)] osgi.wiring.package; (osgi.wiring.package=javax.annotation)] Unresolved requirements: [[com.athaydes.osgiaas.cli-core [5](R 5.0)] osgi.wiring.package; (&(osgi.wiring.package=com.athaydes.osgiaas.api.env)(version>=0.7.0)(!(version>=1.0.0)))]
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4148)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2118)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1372)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.base/java.lang.Thread.run(Thread.java:833)
ERROR: Bundle com.athaydes.osgiaas.common [6] Error starting file:/home/angle/Documents/Programming/Java/OSGIGradleSandbox/build/osgi/bundle/osgiaas-common-0.7.jar (org.osgi.framework.BundleException: Unable to resolve com.athaydes.osgiaas.common [6](R 6.0): missing requirement [com.athaydes.osgiaas.common [6](R 6.0)] osgi.wiring.package; (osgi.wiring.package=javax.annotation) Unresolved requirements: [[com.athaydes.osgiaas.common [6](R 6.0)] osgi.wiring.package; (osgi.wiring.package=javax.annotation)])
org.osgi.framework.BundleException: Unable to resolve com.athaydes.osgiaas.common [6](R 6.0): missing requirement [com.athaydes.osgiaas.common [6](R 6.0)] osgi.wiring.package; (osgi.wiring.package=javax.annotation) Unresolved requirements: [[com.athaydes.osgiaas.common [6](R 6.0)] osgi.wiring.package; (osgi.wiring.package=javax.annotation)]
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4148)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2118)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1372)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.base/java.lang.Thread.run(Thread.java:833)
> Task :runOsgi
This is without adding any bundle to the project, and only using the default osgiRuntime.
Hello,
I am using createOsgiRuntime
to generate an Equinox config, which works perfectly well. However, in the generated config.ini, bundles are given by absolute paths which makes it impossible to run the generated config from anywhere else then from target dir.
Bundles should be referred to by paths relative to the OSGi root. Does anything speak against replacing
def bundleJars = new FileNameByRegexFinder().getFileNames(
bundlesDir.absolutePath, /.+\.jar/ )
by
def bundleJars = new FileNameByRegexFinder().getFileNames(
new File(${osgiConfig.bundlesPath}").path, /.+\.jar/ )
in OsgiRuntimeTaskCreator.groovy:138 ?
Hi
Is it possible to instruct osgi-run to not install some bundles in started OSGi container? I have a big dependency tree with some packages not needed actually, but calculated as necessary.
How to exclude some dependencies / ensure that it will be not wrapped?
I included some compile dependency which is dependant of slfj-api. Dependency is being automatically wrapped and deployed as bundle.
But in one of my projects, I also want to use slf4j, and I added compile dependency to it. After that I have two bundles slf4j deployed on instance. How to prevent such situation?
Firstly, I'm loving this plug-in, thank you! I'm having some trouble figuring out how to properly use DS Annotations. Felix SCR annotations are now deprecated in favor of the actual OSGi ones. It would be great if we could annotate our classes and it automatically be picked up by osgi-run ds plug-in, as opposed to declaring them in the build.gradle or elsewhere. Are you aware of which dependencies are needed (without the osgi-run ds plug-in) to properly do DS annotations?
-Charlie
JavaFX cannot run in most OSGi environment.
Creating a pre-configured environment enabling JavaFX might be very useful to a lot of people.
Notice that this might involve having several configs for different jre versions.
For JRE7_u13, I already know what to do:
https://gist.github.com/renatoathaydes/5021107
Including the Gradle OSGi Plugin automatically was a decision that made sense when there was only one Gradle plugin for OSGi and to make it a tiny little bit easier for developers to use osgi-run (as they cannot forget to make their jars into bundles this way).
However, the Gradle OSGi Plugin only uses Bnd to create a manifest, not to modify the jar in any other way that is supported by Bnd, such as including nested jars (see #32 ), so this dependency on the Gradle OSGi Plugin is causing more damage than good for some users.
Removing this dependency should be really easy anyway.. Current users who don't explicitly declare apply plugin: 'osgi'
just need to add this line to their build files and everything will work as before.
in quartz-sample-nested-jars example:
https://github.com/paulvi/osgi-run/tree/master/osgi-run-test/quartz-sample-nested-jars
there's error, so resulted bundle is not ACTIVE in felix, and can't be started.
full log
# parseClassFile(): path=org/xml/sax/ErrorHandler.class resource=:file:/C:/Program%20Files/Java/jdk1.8.0_74/jre/lib/rt.j
ar!/org/xml/sax/ErrorHandler.class:
:quartz-sample-nested-jars:createOsgiRuntime
> Building 83% > :quartz-sample-nested-jars:runOsgi
:quartz-sample-nested-jars:runOsgi
org.osgi.framework.BundleException: Unable to resolve com.athaydes.gradle.osgi.quartz-sample-nested-jars [6](R 6.0): mis
sing requirement [com.athaydes.gradle.osgi.quartz-sample-nested-jars [6](R 6.0)] osgi.wiring.package; (osgi.wiring.packa
ge=commonj.work) Unresolved requirements: [[com.athaydes.gradle.osgi.quartz-sample-nested-jars [6](R 6.0)] osgi.wiring.p
ackage; (osgi.wiring.package=commonj.work)]
ERROR: Bundle com.athaydes.gradle.osgi.quartz-sample-nested-jars [6] Error starting file:/D:/Workspaces/GitHub/osgi-run/
osgi-run-test/quartz-sample-nested-jars/build/osgi/bundle/quartz-sample-nested-jars-1.0.jar (org.osgi.framework.BundleEx
ception: Unable to resolve com.athaydes.gradle.osgi.quartz-sample-nested-jars [6](R 6.0): missing requirement [com.athay
des.gradle.osgi.quartz-sample-nested-jars [6](R 6.0)] osgi.wiring.package; (osgi.wiring.package=commonj.work) Unresolved
requirements: [[com.athaydes.gradle.osgi.quartz-sample-nested-jars [6](R 6.0)] osgi.wiring.package; (osgi.wiring.packag
e=commonj.work)])
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.lang.Thread.run(Thread.java:745)
____________________________
Welcome to Apache Felix Gogo
> Building 83% > :quartz-sample-nested-jars:runOsgilb
g! g! g! START LEVEL 1
ID|State |Level|Name
0|Active | 0|System Bundle (5.4.0)|5.4.0
1|Active | 1|c3p0 (0.9.1.1)|0.9.1.1
2|Active | 1|Apache Felix Gogo Command (0.16.0)|0.16.0
3|Active | 1|Apache Felix Gogo Runtime (0.16.2)|0.16.2
4|Active | 1|Apache Felix Gogo Shell (0.12.0)|0.12.0
5|Active | 1|quartz (2.2.1)|2.2.1
6|Installed | 1|com.athaydes.gradle.osgi.quartz-sample-nested-jars (1.0.0)|1.0.0
7|Active | 1|slf4j-api (1.6.6)|1.6.6
8|Resolved | 1|slf4j-simple (1.6.6)|1.6.6
> Building 83% > :quartz-sample-nested-jars:runOsgistart 6
org.osgi.framework.BundleException: Unable to resolve com.athaydes.gradle.osgi.quartz-sample-nested-jars [6](R 6.0): mis
sing requirement [com.athaydes.gradle.osgi.quartz-sample-nested-jars [6](R 6.0)] osgi.wiring.package; (osgi.wiring.packa
ge=commonj.work) Unresolved requirements: [[com.athaydes.gradle.osgi.quartz-sample-nested-jars [6](R 6.0)] osgi.wiring.p
ackage; (osgi.wiring.package=commonj.work)]
> Building 83% > :quartz-sample-nested-jars:runOsgi
ref #32 , TomDmitriev/gradle-bundle-plugin#54
@TomDmitriev @rotty3000
My TODO is raise on stackoverflow.com
About the "Quick Start" section.
I couldn't make it work until I added plugin:
. Here is a minimal example of osgi-run
for Equinoxe:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.athaydes.gradle.osgi:osgi-run-core:1.0"
}
}
apply plugin: 'osgi-run'
repositories {
mavenCentral()
}
runOsgi {
osgiMain = EQUINOX
bundles = subprojects
javaArgs = '-console'
configSettings = 'equinox'
bundlesPath = 'plugins'
}
task wrapper(type: Wrapper) {
gradleVersion = '2.1'
}
Please consider to add an entry for this plugin at http://bnd.bndtools.org/chapters/700-tools.html
Just add .md file at https://github.com/bndtools/bnd.manual/tree/gh-pages/_tools
(Hint: use GitHub New File button)
The current version of ipojo-plugin is 1.0 on Bintray and therefore doesn't include commit 0b2b7bb, which fixes a bug that prevents rebuilding without removing the existing generated bundle. ipojo-plugin 1.1 should be made available to fix this issue.
If osgi-run relies on gradle osgi
plulgin #31 , then with osgi-run it is likely impossible to make jar with nested jar.
There is gradle-bundle-plugin
that uses the bnd tool to generate not only a manifest but a whole jar.
see TomDmitriev/gradle-bundle-plugin#54 , https://issues.gradle.org/browse/GRADLE-1107 "OSGi instruction Include-Resource not working"
It might be useful to run a task to just copy all runtime bundles to a specific directory, without creating a full runtime (with system libs, the system bundle, run scripts etc).
This can be easily done by moving some functionality from the createOsgiRuntime
task into a new task, say createOsgiBundlesDir
.
Is it possible to build a fat jar with all transitive dependencies (conflicts resolved similar to maven), and select just the packages that I need to export for my plugin architecture?
No matter what I try, I always get in trouble with dependency resolution, last one was about "Invalid syntax for version" when generating the manifest for "raml-parser-2".
I will rather prefer to build a core bundle with all that I need, and skip this bunch of problems. I know this is not very good OSGi paradigm, I don't care!
It looks like since the OSGi container jars were moved to system-libs
in the 1.5.0 version, Equinox no longer can find the plugins
directory without extra configuration because it looks like it expects that directory to be somewhere else.
Help welcome with this one as I don't know much about Equinox.
generated-sources/MANIFEST.MF in build-with-subprojects has only
Manifest-Version: 1.0
This is possibly issue of org.dm.bundle project or snippets below needs to be changed
afterEvaluate { project ->
project.jar.doLast {
project.jar.manifest.writeTo( project.file( 'generated-sources/MANIFEST.MF' ) )
}
}
vs
jar {
}.doLast {
// copy manifest to location where the IDE can use it to let us know when we breach OSGi restrictions!
jar.manifest.writeTo( project.file( 'generated-sources/MANIFEST.MF' ) )
}
When the manifest of a "wrapInstruction" matches a file pattern, the instruction is removed from the config:
BndWrapper.groovy
Map<String, Object[]> config = getWrapConfig( wrapInstructions, jarFile )
def consumeValue = { String key ->
Object[] items = config.remove( key )
if ( items ) items.join( ',' )
else null
}
Hence, the instruction is not applied to subsequent jar files, matching the pattern. E.g.
runOsgi {
bundles += subprojects
wrapInstructions {
manifest( ~/.*/ ) {
instruction 'Import-Package', '!org.scalatest*', '!org.scalacheck*', '!org.specs*','*'
}
}
}
is only applied to the first match.
I am using your plugin to build my bundles but when I try to override manifest header, then incorrect value is being generated:
jar {
manifest {
instruction 'Bundle-Name', project.description
instruction 'Bundle-SymbolicName', 'adm'
instruction 'Private-Package', "com.mypackage.adm.api.*;version=${project.version}"
}
}
MANIFEST.mf
Bundle-SymbolicName: com.mypackage.adm,adm
expected:
Bundle-SymbolicName: adm
osgi-run version 1.5.0 introduced system libs, but the system lib exports are not versioned, which causes some package imports to fail.
allprojects {
in build-with-subprojects
is applied to all osgi-run-test
tree,
as set of project is defined by https://github.com/renatoathaydes/osgi-run/blob/master/osgi-run-test/settings.gradle
Hello,
how to download sources of dependencies (even transitive?)
with best regards, jiri
It would be nice when equinox is used in case there are no source bundles available (i.e. when wrapping or it was not uploaded to the repository) those bundles were generated. In Maven, this is done something like this, while for gradle it is probably looks like '-sources': true
in this.
Thanks for considering it.
run.sh declares #!/bin/sh but uses ${BASH_SOURCE[ 0 ]} which is bash an not sh.
So zsh complain with Bad substitution.
While trying #37 (comment)
all
gradle -Dequinox=true runOsgi
gradle -Dequinox runOsgi
gradle -Pequinox runOsgi
gradle runOsgi -Pequinox
did not work
if (hasProperty('equinox')) {
println 'equinox'
}
runOsgi {
// https://github.com/renatoathaydes/osgi-run/issues/37
// run any with
// gradle -Dequinox=true runOsgi
if (hasProperty('equinox')) {
configSettings = 'equinox'
osgiMain = 'org.eclipse.osgi:org.eclipse.osgi:3.7.1'
javaArgs = '-DmyProp=someValue'
programArgs = '-console'
config += [ 'osgi.clean': true ] // add properties to the Equinox config
} else { // use felix, which is already the default
// maybe specify which felix version to use here...
}
bundles += subprojects
config += [ 'org.osgi.framework.storage.clean': 'onFirstInit' ]
}
It always launches Felix
D:\Workspaces\Enide-2015-7\osgi-run-my>gradle runOsgi -Pequinox
equinox
:build-with-subprojects:my-api:compileJava UP-TO-DATE
:build-with-subprojects:my-api:processResources UP-TO-DATE
:build-with-subprojects:my-api:classes UP-TO-DATE
:build-with-subprojects:my-api:jar UP-TO-DATE
:build-with-subprojects:my-consumer:compileJava UP-TO-DATE
:build-with-subprojects:my-consumer:compileGroovy UP-TO-DATE
:build-with-subprojects:my-consumer:processResources UP-TO-DATE
:build-with-subprojects:my-consumer:classes UP-TO-DATE
:build-with-subprojects:my-consumer:jar UP-TO-DATE
:build-with-subprojects:my-impl:compileJava UP-TO-DATE
:build-with-subprojects:my-impl:compileGroovy UP-TO-DATE
:build-with-subprojects:my-impl:processResources UP-TO-DATE
:build-with-subprojects:my-impl:classes UP-TO-DATE
:build-with-subprojects:my-impl:jar UP-TO-DATE
:build-with-subprojects:createOsgiRuntime
:build-with-subprojects:runOsgi
Started MyConsumer
Got service ref null
Detected registration of a Service!
Got service with message: This is a MyService implementation of class com.athaydes.myimpl.MyServiceImpl
Exported MyService implementation
____________________________
Welcome to Apache Felix Gogo
> Building 93% > :build-with-subprojects:runOsgi
MyConsumer return null all the time.
Doing
project.buildDir = 'some-other-dir'
Should cause the OSGi environment to be created at some-other-dir/osgi
but it doesn't... it always goes to build/osgi
because the location is being resolved too early, while the plugin is applied to the project.
Currently, transitive dependencies get deployed to the bundle folder.
But if there is not OSGi metadata, it seems it is pointless to do it unless the jars are wrapped into bundles exporting everything they have. Maybe this should be an option for users to decide whether to enable or not (so that it can be really easy to get anything at all into an OSGi environment).
In this build.gradle I am generating OSGi manifests for both the rsyntaxtextarea and its autocomplete. Unfortunately when I tried to change the org.fife.ui
symbolic name of RSyntaxTextArea, I got symbolic name like: [Ljava.lang.Object;@69c8b868
.
When I tried similar thing to change the version of things to wrap, I got also a toString of an Object array (so I had to find already OSGified versions of it).
For the com.thoughtworks.xstream:xstream:1.4.7
dependency there is an xpp3:xpp3_min:1.1.4c
dependency, which cannot be wrapped, because the 1.1.4c
is not an OSGi version format and the bnd tool fails with an exception. (Similarly to the org.apache.poi:poi-ooxml-schemas:3.10-FINAL
dependency, 3.10-FINAL
is not a valid OSGi version number, so bnd fails.) It would be nice if these kind of version numbers were automatically converted to an OSGi format, like 1.1.4.c
or 3.10.0.FINAL
.
Thanks for this great tool.
When doing:
runOsgi {
bundles = [ files(myDirWithJar) ]
}
An Exception is thrown because the plugin tries to configure the dependency (with "transitive" and "exclusions").
The plugin should only do that for bundles that are of type Dependency
.
Just by chance ran into http://stackoverflow.com/questions/25733843/how-to-start-osgi-console, that gave me answer why possible I could not run one of my first examples against Equinox
The solution is pasted below. Can this be default e.g. for #37 run-any
Make a run folder that would look like:
Then edit config.ini as:
osgi.bundles=org.apache.felix.gogo.runtime@start, org.apache.felix.gogo.command@start, org.apache.felix.gogo.shell@start, org.eclipse.equinox.console@start
After done this, run
java -jar org.eclipse.osgi.jar -console
in your command line and the osgi console will start.
GDSL will allow the IDE to auto-complete and check the syntax of Groovy DS files.
example build.gradle fragment:
runOsgi {
[...]
javaArgs = '''
-Djersey=true
-Dosgi.clean=true
''''
works for ./gradlew runOsgi
but run.sh
script looks like this:
[...]
"$JAVA"
-Djersey=true
-Dosgi.clean=true
-jar org.apache.felix.main-5.4.0.jar "$@"
There should be '' at line ends.
Environment:
Running gradlew.bat build, and getting the following error:
Execution failed for task ':example:jar'.
Cannot read Declarative Services declarations from null
Would appreciate any help in understanding this.
(BTW, my goal is to make my jar an OSGI bundle. The native gradle osgi plugin was removed, so I wanted to use your plugin instead. If your plugin is not a substitute for the native plugin, can you please let me know which plugin would be relevant?).
Thanks!
"createOsgiRuntime" task failes with NoSuchMethodError
. Works with 1.5.0.
plugins {
id "com.athaydes.osgi-run" version "1.5.1"
}
$ ./gradlew --version
------------------------------------------------------------
Gradle 2.4
------------------------------------------------------------
Build time: 2015-05-05 08:09:24 UTC
Build number: none
Revision: 5c9c3bc20ca1c281ac7972643f1e2d190f2c943c
Groovy: 2.3.10
Ant: Apache Ant(TM) version 1.9.4 compiled on April 29 2014
JVM: 1.8.0_101 (Oracle Corporation 25.101-b13)
OS: Linux 4.4.0-38-generic amd64
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':createOsgiRuntime'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:310)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:88)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62)
at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:68)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:55)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:90)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:50)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:27)
at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:40)
at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:169)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at org.gradle.launcher.Main.doAction(Main.java:33)
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
Caused by: java.lang.NoSuchMethodError: org.codehaus.groovy.runtime.StringGroovyMethods.find(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
at com.athaydes.gradle.osgi.util.FileNameUtils.versionFrom(FileNameUtils.groovy:11)
at com.athaydes.gradle.osgi.util.FileNameUtils$versionFrom.call(Unknown Source)
at com.athaydes.gradle.osgi.util.JarUtils.versionOf(JarUtils.groovy:108)
at com.athaydes.gradle.osgi.util.JarUtils$versionOf$3.call(Unknown Source)
at com.athaydes.gradle.osgi.bnd.BndWrapper.wrapNonBundle(BndWrapper.groovy:39)
at com.athaydes.gradle.osgi.OsgiRuntimeTaskCreator$_copyBundles_closure13.doCall(OsgiRuntimeTaskCreator.groovy:183)
at com.athaydes.gradle.osgi.OsgiRuntimeTaskCreator.copyBundles(OsgiRuntimeTaskCreator.groovy:180)
at com.athaydes.gradle.osgi.OsgiRuntimeTaskCreator$_createOsgiRuntimeTask_closure1.doCall(OsgiRuntimeTaskCreator.groovy:35)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:558)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:539)
at org.gradle.api.internal.tasks.TaskMutator$1.execute(TaskMutator.java:77)
at org.gradle.api.internal.tasks.TaskMutator$1.execute(TaskMutator.java:73)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
... 49 more
I'm receiving the following error. I have previously used osgi-run successfully, but recently I've run into this problem. I'm currently running Gradle 3.0 with a simple root project. Any help would be greatly appreciated.
org.gradle.tooling.BuildException: Could not run build action using Gradle installation '/home/georgec/Programs/gradle-3.0'. at org.gradle.tooling.internal.consumer.ResultHandlerAdapter.onFailure(ResultHandlerAdapter.java:59) at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:57) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54) at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:46) at org.gradle.tooling.internal.consumer.DefaultBuildActionExecuter.run(DefaultBuildActionExecuter.java:47) at org.netbeans.gradle.model.GenericModelFetcher.getModels(GenericModelFetcher.java:166) at org.netbeans.gradle.project.model.NbGradle18ModelLoader$ProjectModelFetcher.getModels(NbGradle18ModelLoader.java:371) at org.netbeans.gradle.project.model.NbGradle18ModelLoader.loadModels(NbGradle18ModelLoader.java:69) at org.netbeans.gradle.project.model.GradleModelLoader.loadModelWithProgress(GradleModelLoader.java:566) at org.netbeans.gradle.project.model.GradleModelLoader.access$800(GradleModelLoader.java:71) at org.netbeans.gradle.project.model.GradleModelLoader$6.run(GradleModelLoader.java:396) at org.netbeans.gradle.project.tasks.GradleDaemonManager.runNonBlockingGradleTask(GradleDaemonManager.java:35) at org.netbeans.gradle.project.tasks.GradleDaemonManager.access$100(GradleDaemonManager.java:22) at org.netbeans.gradle.project.tasks.GradleDaemonManager$2.execute(GradleDaemonManager.java:125) at org.jtrim.concurrent.AbstractTaskExecutorService$FunctionWrapper.execute(AbstractTaskExecutorService.java:270) at org.jtrim.concurrent.AbstractTaskExecutorService$TaskOfAbstractExecutor.execute(AbstractTaskExecutorService.java:340) at org.jtrim.concurrent.Tasks$RunOnceCancelableTask.execute(Tasks.java:342) at org.jtrim.concurrent.SingleThreadedExecutor$QueuedItem.runTask(SingleThreadedExecutor.java:919) at org.jtrim.concurrent.SingleThreadedExecutor$QueuedItem.access$1200(SingleThreadedExecutor.java:898) at org.jtrim.concurrent.SingleThreadedExecutor$Impl$Worker.executeTask(SingleThreadedExecutor.java:815) at org.jtrim.concurrent.SingleThreadedExecutor$Impl$Worker.processQueue(SingleThreadedExecutor.java:827) at org.jtrim.concurrent.SingleThreadedExecutor$Impl$Worker.run(SingleThreadedExecutor.java:861) at org.jtrim.concurrent.SingleThreadedExecutor$Impl$1.run(SingleThreadedExecutor.java:453) at java.lang.Thread.run(Thread.java:745) Caused by: org.gradle.internal.exceptions.LocationAwareException: A problem occurred configuring root project 'CAMP'. at org.gradle.initialization.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:74) at org.gradle.initialization.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:47) at org.gradle.initialization.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:30) at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:100) at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63) at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92) at org.gradle.initialization.DefaultGradleLauncher.getBuildAnalysis(DefaultGradleLauncher.java:88) at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.configure(InProcessBuildActionExecuter.java:102) at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:45) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:58) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28) at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:82) at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49) at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:59) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:49) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72) at org.gradle.util.Swapper.swap(Swapper.java:38) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.HintGCAfterBuild.execute(HintGCAfterBuild.java:44) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50) at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:240) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54) at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40) Caused by: org.gradle.api.ProjectConfigurationException: A problem occurred configuring root project 'CAMP'. at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:79) at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:74) at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:61) at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:573) at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:125) at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:42) at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:38) at org.gradle.initialization.DefaultGradleLauncher$2.run(DefaultGradleLauncher.java:124) at org.gradle.internal.Factories$1.create(Factories.java:22) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53) at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:121) at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32) at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98) ... 42 more Caused by: org.gradle.api.artifacts.UnknownConfigurationException: Configuration with name '__osgiRuntime__0' not found. at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.createNotFoundException(DefaultConfigurationContainer.java:92) at org.gradle.api.internal.DefaultNamedDomainObjectCollection.getByName(DefaultNamedDomainObjectCollection.java:229) at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:82) at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:37) at org.gradle.api.internal.DefaultNamedDomainObjectCollection.getAt(DefaultNamedDomainObjectCollection.java:241) at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getAt(DefaultConfigurationContainer.java:37) at org.gradle.api.artifacts.ConfigurationContainer$getAt.call(Unknown Source) at com.athaydes.gradle.osgi.ConfigurationsCreator$_configBundles_closure1$_closure3.doCall(ConfigurationsCreator.groovy:21) at com.athaydes.gradle.osgi.ConfigurationsCreator$_configBundles_closure1.doCall(ConfigurationsCreator.groovy:20) at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:70) at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:160) at org.gradle.util.ConfigureUtil.configureSelf(ConfigureUtil.java:148) at org.gradle.api.internal.AbstractNamedDomainObjectContainer.configure(AbstractNamedDomainObjectContainer.java:74) at org.gradle.api.internal.AbstractNamedDomainObjectContainer.configure(AbstractNamedDomainObjectContainer.java:29) at org.gradle.api.internal.project.DefaultProject.configurations(DefaultProject.java:932) at org.gradle.api.Project$configurations$3.call(Unknown Source) at com.athaydes.gradle.osgi.ConfigurationsCreator.configBundles(ConfigurationsCreator.groovy:18) at com.athaydes.gradle.osgi.ConfigurationsCreator$configBundles.call(Unknown Source) at com.athaydes.gradle.osgi.OsgiRunPlugin$_createTasks_closure1.doCall(OsgiRunPlugin.groovy:30) at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40) at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44) at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79) at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:30) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) at com.sun.proxy.$Proxy12.afterEvaluate(Unknown Source) at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:67) ... 54 more
When using dependencies like osgi core or compendium, they should not be included in the osgi/bundle directory.
For example:
compile 'org.osgi:osgi.core:6.0.0'
compile 'org.osgi:osgi.cmpn:6.0.0'
Results in having osgi.cmpn-6.0.0.jar and osgi.core-6.0.0.jar in osgi/bundle. The main output also complains about not being able to start the bundle (and that is perfectly right, in my opinion):
ERROR: Bundle osgi.cmpn [11] Error starting file:[...]/build/osgi/bundle/osgi.cmpn-6.0.0.jar (org.osgi.framework.BundleException: Unable to resolve osgi.cmpn [11](R 11.0): missing requirement [osgi.cmpn [11](R 11.0)] osgi.compile.time.only; (&(must.not.resolve=*)(!(must.not.resolve=*))) Unresolved requirements: [[osgi.cmpn [11](R 11.0)] osgi.compile.time.only; (&(must.not.resolve=*)(!(must.not.resolve=*)))])
org.osgi.framework.BundleException: Unable to resolve osgi.cmpn [11](R 11.0): missing requirement [osgi.cmpn [11](R 11.0)] osgi.compile.time.only; (&(must.not.resolve=*)(!(must.not.resolve=*))) Unresolved requirements: [[osgi.cmpn [11](R 11.0)] osgi.compile.time.only; (&(must.not.resolve=*)(!(must.not.resolve=*)))]
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.lang.Thread.run(Thread.java:745)
The task runOsgi can not be started from within IntelliJ, because it reads from system.in
. Is there a way to allow user input by IntelliJ? Even if not, I think it should be possible to disable user input and let the task wait for an exit signal sent from the IDE.
:simplest-build:runOsgi FAILED
:simplest-build:runOsgi (Thread[Daemon worker,5,main]) completed. Took 0.114 secs.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':simplest-build:runOsgi'.
> No line found
* Try:
Run with --debug option to get more log output.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':simplest-build:runOsgi'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:154)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:151)
at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:99)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:93)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94)
at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:46)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:58)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:45)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:66)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: java.util.NoSuchElementException: No line found
at java_util_Scanner$nextLine.call(Unknown Source)
at com.athaydes.gradle.osgi.OsgiRunner.delegateProcessTo(OsgiRunner.groovy:56)
at com.athaydes.gradle.osgi.OsgiRunner.run(OsgiRunner.groovy:41)
at com.athaydes.gradle.osgi.OsgiRunner$run.call(Unknown Source)
at com.athaydes.gradle.osgi.OsgiRunPlugin$_runOsgiTask_closure3.doCall(OsgiRunPlugin.groovy:75)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:554)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:535)
at org.gradle.api.internal.tasks.TaskMutator$1.execute(TaskMutator.java:77)
at org.gradle.api.internal.tasks.TaskMutator$1.execute(TaskMutator.java:73)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
... 70 more
BUILD FAILED
Total time: 8.738 secs
Stopped 0 compiler daemon(s).
No line found
10:58:22: External task execution finished ':simplest-build:runOsgi --info --stacktrace'.
´´´
When using the master brunch of the osgi-run tutorial found in
https://sites.google.com/a/athaydes.com/renato-athaydes/posts/osgi-runtutorial-runyourjavakotlinfregecodeinosgi
with having grade version 3.4.1. installed
the first step fails.
This is
$ gradle crO
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
:createOsgiRuntime FAILED
FAILURE: Build failed with an exception.
Configuration with name '__osgiRuntime0' not found.
Hi,
It seems, that it doesnt work under gradle 4.4.1. We migrated from gradle 3.4. Main issue is, that generated configuration.ini and content of folder plugins is different.
The main difference, that start level is changed (I really dont know why) and osgiaas-cli-core is added:
__osgiRuntime__0
--- org.apache.felix:org.apache.felix.scr:2.0.12
__osgiRuntime__1
--- com.athaydes.osgiaas:osgiaas-cli-core:0.7
+--- com.athaydes.osgiaas:osgiaas-cli-api:0.7
| +--- com.athaydes.osgiaas:osgiaas-common:0.7
| --- org.apache.felix:org.apache.felix.shell:1.4.3
--- jline:jline:2.14.2
It looks like, that dependencies are handled by different way. Why?
It looks like, that level for start level is copied to transitive deps
Please help, with best regards, jiri
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.