You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2021/05/04 06:43:25 UTC
[karaf] branch main updated: [KARAF-7113] Improve scheduler
whiteboard name handling
This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/karaf.git
The following commit(s) were added to refs/heads/main by this push:
new 7e8b517 [KARAF-7113] Improve scheduler whiteboard name handling
new 20396b3 Merge pull request #1358 from jbonofre/KARAF-7113
7e8b517 is described below
commit 7e8b5171b5672470c76ef7749bdacf84e25f78f6
Author: jbonofre <jb...@apache.org>
AuthorDate: Mon Apr 26 08:51:02 2021 +0200
[KARAF-7113] Improve scheduler whiteboard name handling
---
.../src/main/feature/feature.xml | 8 ++++++++
.../scheduler/{RunnableService.java => OtherService.java} | 13 +++++--------
.../apache/karaf/examples/scheduler/RunnableService.java | 2 +-
.../apache/karaf/itests/examples/SchedulerExampleTest.java | 3 ++-
.../org/apache/karaf/scheduler/core/WhiteboardHandler.java | 12 ++++++++++--
5 files changed, 26 insertions(+), 12 deletions(-)
diff --git a/examples/karaf-scheduler-example/karaf-scheduler-example-features/src/main/feature/feature.xml b/examples/karaf-scheduler-example/karaf-scheduler-example-features/src/main/feature/feature.xml
index f6a174d..38c1cc4 100644
--- a/examples/karaf-scheduler-example/karaf-scheduler-example-features/src/main/feature/feature.xml
+++ b/examples/karaf-scheduler-example/karaf-scheduler-example-features/src/main/feature/feature.xml
@@ -19,6 +19,14 @@
<features name="karaf-scheduler-example-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.4.0">
<feature name="karaf-scheduler-example" version="${project.version}">
+ <config name="org.apache.karaf.example.scheduler.foo">
+ scheduler.time=5
+ scheduler.period=10
+ </config>
+ <config name="org.apache.karaf.example.scheduler.bar">
+ scheduler.time=5
+ scheduler.period=10
+ </config>
<feature prerequisite="true">scheduler</feature>
<feature prerequisite="true">scr</feature>
<bundle>mvn:org.apache.karaf.examples/karaf-scheduler-example-runnable/${project.version}</bundle>
diff --git a/examples/karaf-scheduler-example/karaf-scheduler-example-runnable/src/main/java/org/apache/karaf/examples/scheduler/RunnableService.java b/examples/karaf-scheduler-example/karaf-scheduler-example-runnable/src/main/java/org/apache/karaf/examples/scheduler/OtherService.java
similarity index 74%
copy from examples/karaf-scheduler-example/karaf-scheduler-example-runnable/src/main/java/org/apache/karaf/examples/scheduler/RunnableService.java
copy to examples/karaf-scheduler-example/karaf-scheduler-example-runnable/src/main/java/org/apache/karaf/examples/scheduler/OtherService.java
index 31b8597..bd4490e 100644
--- a/examples/karaf-scheduler-example/karaf-scheduler-example-runnable/src/main/java/org/apache/karaf/examples/scheduler/RunnableService.java
+++ b/examples/karaf-scheduler-example/karaf-scheduler-example-runnable/src/main/java/org/apache/karaf/examples/scheduler/OtherService.java
@@ -17,20 +17,17 @@
package org.apache.karaf.examples.scheduler;
import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.ConfigurationPolicy;
@Component(
- property = {
- "scheduler.name=example",
- "scheduler.period:Long=10",
- "scheduler.times:Integer=5",
- "scheduler.concurrent:Boolean=false"
- }
+ configurationPid = { "org.apache.karaf.example.scheduler.foo", "org.apache.karaf.example.scheduler.bar" },
+ configurationPolicy = ConfigurationPolicy.REQUIRE
)
-public class RunnableService implements Runnable {
+public class OtherService implements Runnable {
@Override
public void run() {
- System.out.print("Hello Karaf user !");
+ System.out.print("Hello others !");
}
}
diff --git a/examples/karaf-scheduler-example/karaf-scheduler-example-runnable/src/main/java/org/apache/karaf/examples/scheduler/RunnableService.java b/examples/karaf-scheduler-example/karaf-scheduler-example-runnable/src/main/java/org/apache/karaf/examples/scheduler/RunnableService.java
index 31b8597..ad4b6aa 100644
--- a/examples/karaf-scheduler-example/karaf-scheduler-example-runnable/src/main/java/org/apache/karaf/examples/scheduler/RunnableService.java
+++ b/examples/karaf-scheduler-example/karaf-scheduler-example-runnable/src/main/java/org/apache/karaf/examples/scheduler/RunnableService.java
@@ -20,7 +20,7 @@ import org.osgi.service.component.annotations.Component;
@Component(
property = {
- "scheduler.name=example",
+ "scheduler.name=org.apache.karaf.example.scheduler.runnable",
"scheduler.period:Long=10",
"scheduler.times:Integer=5",
"scheduler.concurrent:Boolean=false"
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/examples/SchedulerExampleTest.java b/itests/test/src/test/java/org/apache/karaf/itests/examples/SchedulerExampleTest.java
index bd1e45b..a3c3328 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/examples/SchedulerExampleTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/examples/SchedulerExampleTest.java
@@ -34,7 +34,8 @@ public class SchedulerExampleTest extends BaseTest {
String output = executeCommand("scheduler:list");
System.out.println(output);
- assertContains("example", output);
+ assertContains("org.apache.karaf.example.scheduler.runnable", output);
+ assertContains("org.apache.karaf.example.scheduler.foo", output);
}
}
diff --git a/scheduler/src/main/java/org/apache/karaf/scheduler/core/WhiteboardHandler.java b/scheduler/src/main/java/org/apache/karaf/scheduler/core/WhiteboardHandler.java
index b674fbd..b546eea 100644
--- a/scheduler/src/main/java/org/apache/karaf/scheduler/core/WhiteboardHandler.java
+++ b/scheduler/src/main/java/org/apache/karaf/scheduler/core/WhiteboardHandler.java
@@ -16,6 +16,8 @@
*/
package org.apache.karaf.scheduler.core;
+import java.lang.reflect.Array;
+import java.util.ArrayList;
import java.util.Date;
import org.apache.karaf.scheduler.Job;
@@ -84,8 +86,14 @@ public class WhiteboardHandler {
private String getServiceIdentifier(final ServiceReference ref) {
String name = (String) ref.getProperty(Scheduler.PROPERTY_SCHEDULER_NAME);
if ( name == null ) {
- name = (String) ref.getProperty(Constants.SERVICE_PID);
- if ( name == null ) {
+ if (ref.getProperty(Constants.SERVICE_PID) instanceof String) {
+ name = (String) ref.getProperty(Constants.SERVICE_PID);
+ } else if (ref.getProperty(Constants.SERVICE_PID) instanceof ArrayList) {
+ if (((ArrayList) ref.getProperty(Constants.SERVICE_PID)).size() > 0) {
+ name = ((ArrayList) ref.getProperty(Constants.SERVICE_PID)).get(0).toString();
+ }
+ }
+ if (name == null) {
name = "Registered Service";
}
}