小编Fra*_*Lee的帖子

使用Tycho项目构建eclipse功能时偶然会出现错误

我有一个基于OSGi的应用程序的Maven/Tycho构建,偶尔会因例外而失败.

我有大约20个eclipse功能,它似乎与实际功能没有任何关系(它可能是每次都失败的不同功能,并且通常构建工作正常)

这不是灾难,但我想在某些时候解决这个问题,而且我真的不知道如何调试这个进一步没有潜入Tycho代码或开始乱用随机设置.

这对任何人都响了吗?

系统:Fedora Linux JVM:OpenJDK运行时环境(IcedTea6 1.11.3)(fedora-67.1.11.3.fc16-x86_64)Maven:3.0.3 Tycho:0.15.0

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.eclipse.tycho:tycho-packaging-plugin:0.15.0:package-feature (default-package-feature) on project com.dexels.navajo.tipi.swing.feature: Execution default-package-feature of goal org.eclipse.tycho:tycho-packaging-plugin:0.15.0:package-feature failed: com.dexels.navajo:com.dexels.navajo.tipi.swing.deps:eclipse-plugin:1.2.1-SNAPSHOT does not provide an artifact with classifier 'null'
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225)
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:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:158)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:98)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:64)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:287)
at …
Run Code Online (Sandbox Code Playgroud)

java eclipse osgi tycho maven

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

以编程方式添加声明性服务

是否可以使用某种api添加声明性服务?

一点背景:

我有一个基于动态脚本的服务器应用程序(可以随时添加,编辑或删除它们).这些脚本依赖于OSGi服务,并且可能相互依赖.每当编辑脚本时,脚本都会编译为javascript,并检测其依赖关系.

那时,我想(重新)将其注册为声明性服务,因此当它的依赖性来去时它将被激活/停用.

  • 这甚至可能吗?还是有什么重要的我不见了?
  • 如果无法使用OSGi标准,那么Felix或Equinox是否有特定的解决方案?
  • 你能在其他框架中做到这一点,比如iPojo或蓝图吗?

osgi declarative-services equinox apache-felix

4
推荐指数
1
解决办法
996
查看次数

在RxJava中,我无法从flatMap发出onComplete

我有一个问题,当我使用flatmap时,我的Observable链不会终止.

我把我的例子归结为:

int count = Observable.just(1,2,3)
        .flatMap(s -> Observable.<Integer>create(subscr-> {
            subscr.onNext(s);
            if(s>2) {
                subscr.onCompleted();
            }
        }))
        .doOnEach(a->System.err.println(a.getKind()+" -> "+a.toString()))
        .count()
        .toBlocking()
        .first();
    System.err.println("Count: "+count);
Run Code Online (Sandbox Code Playgroud)

我希望'doOnEach'报告三个onNext事件,然后是onCompleted,最后链应该终止.

但是,输出是这样的:

OnNext -> [rx.Notification@c9e6d24d OnNext 1]
OnNext -> [rx.Notification@c9e6d24e OnNext 2]
OnNext -> [rx.Notification@c9e6d24f OnNext 3]
Run Code Online (Sandbox Code Playgroud)

(然后继续挂)

如果我删除flatMap运算符:

int count = Observable.just(1,2,3)
        .doOnEach(a->System.err.println(a.getKind()+" -> "+a.toString()))
        .count()
        .toBlocking()
        .first();
System.err.println("Count: "+count);
Run Code Online (Sandbox Code Playgroud)

......它的工作方式完全符合预期:

CREATED!
OnNext -> [rx.Notification@e3598bd9 OnNext 1]
OnNext -> [rx.Notification@e3598bda OnNext 2]
OnNext -> [rx.Notification@e3598bdb OnNext 3]
OnCompleted -> [rx.Notification@3834d63f OnCompleted]
Count: 3
Run Code Online (Sandbox Code Playgroud)

我想我做错了什么(我无法想象这种基本场景中的错误),但我没有看到它.

任何帮助表示赞赏......(我正在使用RxJava …

rx-java

4
推荐指数
1
解决办法
2045
查看次数

你如何从 Kotlin 的回调中分离出“热”事件流?

我正在处理通过回调到达的热事件流。“下游”我想将其拆分为多个流,并对其进行处理。事件都从单个线程(我无法控制,因此我不认为我可以在这里使用协同例程)按顺序到达在这里使用正确的结构?

我可以很容易地创建一个 Flow,使用 callbackFlow 和 sendBlocking,但语义似乎不一致,因为 Flow 并不冷。将流拆分为多个下游流的最佳方法是什么(取决于事件的内容)。还是我应该使用渠道?它与我的来源的“热度”相匹配,但整个下游轮询似乎关闭(在这种基本上是同步的情况下),并且许多方法似乎已被弃用而支持 Flow。

可以通过使用“一路回调”完成所有这些,但这会产生比我想要的更紧密的耦合。有任何想法吗?

编辑:

我结束了这个,似乎工作:

    fun testFlow() {
        runBlocking {
            val original = flowOf("aap", "noot", "mies", "wim", "zus","jet","weide","does")
            val broadcast = original.broadcastIn(this)
            val flow1 = broadcast.openSubscription().receiveAsFlow().filter { it.length == 4 }
            val flow2 = broadcast.openSubscription().receiveAsFlow().filter { it.length == 3 }
            flow1.collect { it -> println("Four letter: ${it}") }
            flow2.collect { it -> println("Three letter: ${it}") }
        }
    }
Run Code Online (Sandbox Code Playgroud)

kotlin kotlin-coroutines kotlin-coroutines-flow

4
推荐指数
1
解决办法
2216
查看次数

Debezium 导致 Postgres 耗尽 RDS 上的磁盘空间

我有一个在 Amazon RDS 上运行的小型 Postgres 开发数据库,​​并且正在运行 K8s。据我所知,几乎没有任何交通。我想启用更改捕获,我启用了 rds.logic_replication,启动了 Debezium 实例,主题出现在 Kafka 中,一切看起来都很好。

几个小时后,可用磁盘空间开始减少: 在此输入图像描述

它开始以恒定的速度消耗磁盘,并在 24 小时内耗尽所有可用的 20Gb。停止 Debezium 没有任何作用。我恢复磁盘空间的方法是:

select pg_drop_replication_slot('services_debezium')
Run Code Online (Sandbox Code Playgroud)

和:

vacuum full
Run Code Online (Sandbox Code Playgroud)

然后,几分钟后,如图所示,磁盘空间被回收。

有小费吗?我很想看看到底是什么东西填满了这个空间,但我想我做不到。Debezium 方面似乎没有发生任何事情(没有不祥的日志),Postgres 日志也没有显示任何特别的内容。或者是否有一些外部事件触发了这一点?

postgresql amazon-rds debezium

4
推荐指数
2
解决办法
3221
查看次数

对OSGi版本4.3和Felix感到困惑

我不太了解最新的Apache Felix版本(4.0.2)的OSGi版本.

我已经读过Apache Felix 4符合OSGi 4.3,我认为这意味着Felix框架包将导出org.osgi.framework版本1.6.0.

它没有,快速查看Felix的清单说它出口版本1.5.0,所以(至少)其中一个假设是错误的.如果我检查Equinox 3.7,我确实看到了org.osgi.framework版本1.6.0的导出

谁能指出我正确的方向?

osgi equinox apache-felix

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