标签: ipojo

使用OSGi和Apache Felix iPOJO与JDK 11

我有一个围绕OSGi和iPOJO构建的项目,我正在尝试确定它是否仍然适用于JDK 11.它目前正在使用JDK 8.由于iPOJO(1.12.1)的最新版本是最新版本,所以看起来并不太乐观. 2014年发布.更新目标和maven编译器版本后,我遇到以下问题:

[ERROR] Failed to execute goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle (default) on project redacted: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed. IllegalArgumentException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle (default) on project redacted: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed.
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at …
Run Code Online (Sandbox Code Playgroud)

java osgi maven apache-felix ipojo

5
推荐指数
1
解决办法
577
查看次数

OSGi组件模型中的束内和束间相互依赖性

在我目前的应用程序中,我在几个地方遇到了这种模式:我在一个捆绑包中有两个服务接口,它们执行不同但相关的工作.

interface Service1 { ... }

interface Service2 { ... }
Run Code Online (Sandbox Code Playgroud)

并希望单独的组件实现两者,但找到每个需要对另一个的引用:

public class Service1Impl implements Service1 { 

    private Service2 service2;
    ...

}

public class Service2Impl implements Service2 { 

    private Service1 service1;
    ...

}
Run Code Online (Sandbox Code Playgroud)

三个OSGi组件模型中的哪一个(DS,Blueprint和iPOJO)允许这样:1)何时Service1Impl和Service2Impl在同一捆绑中; 2)当他们在不同的捆绑?

osgi declarative-services ipojo blueprint-osgi

3
推荐指数
1
解决办法
2344
查看次数