You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2016/03/17 15:24:42 UTC
karaf git commit: [KARAF-4370] Fixes event commands
Repository: karaf
Updated Branches:
refs/heads/master 73253140d -> fe928b873
[KARAF-4370] Fixes event commands
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/fe928b87
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/fe928b87
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/fe928b87
Branch: refs/heads/master
Commit: fe928b873f82e4b3bc78848cdafa104f78888eb4
Parents: 7325314
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Thu Mar 17 15:24:34 2016 +0100
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Thu Mar 17 15:24:34 2016 +0100
----------------------------------------------------------------------
.../standard/src/main/feature/feature.xml | 7 +++-
event/pom.xml | 1 -
.../karaf/event/command/EventSendCommand.java | 28 ++++++++------
.../event/command/EventSendCommandTest.java | 40 ++++++++++++++++----
4 files changed, 55 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/fe928b87/assemblies/features/standard/src/main/feature/feature.xml
----------------------------------------------------------------------
diff --git a/assemblies/features/standard/src/main/feature/feature.xml b/assemblies/features/standard/src/main/feature/feature.xml
index 8631019..4447b72 100644
--- a/assemblies/features/standard/src/main/feature/feature.xml
+++ b/assemblies/features/standard/src/main/feature/feature.xml
@@ -499,13 +499,16 @@
</config>
<bundle start-level="5">mvn:org.apache.felix/org.apache.felix.metatype/${felix.metatype.version}</bundle>
<bundle start-level="5">mvn:org.apache.karaf.services/org.apache.karaf.services.eventadmin/${project.version}</bundle>
- <bundle>mvn:org.apache.karaf/org.apache.karaf.event/${project.version}</bundle>
+ <conditional>
+ <condition>shell</condition>
+ <bundle>mvn:org.apache.karaf/org.apache.karaf.event/${project.version}</bundle>
+ </conditional>
<conditional>
<condition>webconsole</condition>
<bundle start-level="30">mvn:org.apache.felix/org.apache.felix.webconsole.plugins.event/${felix.eventadmin.webconsole.plugin.version}</bundle>
</conditional>
</feature>
-
+
<feature name="jasypt-encryption" description="Advanced encryption support for Karaf security" version="${project.version}">
<feature>jaas</feature>
<bundle dependency="true" start-level="30">mvn:commons-codec/commons-codec/${commons-codec.version}</bundle>
http://git-wip-us.apache.org/repos/asf/karaf/blob/fe928b87/event/pom.xml
----------------------------------------------------------------------
diff --git a/event/pom.xml b/event/pom.xml
index 9b9b393..3028c23 100644
--- a/event/pom.xml
+++ b/event/pom.xml
@@ -71,7 +71,6 @@
<groupId>org.apache.karaf.shell</groupId>
<artifactId>org.apache.karaf.shell.core</artifactId>
<version>4.0.4</version>
- <optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.karaf</groupId>
http://git-wip-us.apache.org/repos/asf/karaf/blob/fe928b87/event/src/main/java/org/apache/karaf/event/command/EventSendCommand.java
----------------------------------------------------------------------
diff --git a/event/src/main/java/org/apache/karaf/event/command/EventSendCommand.java b/event/src/main/java/org/apache/karaf/event/command/EventSendCommand.java
index 092facb..0f7d5e6 100644
--- a/event/src/main/java/org/apache/karaf/event/command/EventSendCommand.java
+++ b/event/src/main/java/org/apache/karaf/event/command/EventSendCommand.java
@@ -17,6 +17,7 @@
package org.apache.karaf.event.command;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.apache.karaf.shell.api.action.Action;
@@ -37,27 +38,32 @@ public class EventSendCommand implements Action {
@Reference
EventAdmin eventAdmin;
- @Argument
+ @Argument(index=0, required=true)
String topic;
- @Argument(multiValued=true)
- String propertiesSt;
+ @Argument(index=1, multiValued=true, description="Event properties in format key=value key2=value2 ...")
+ List<String> properties;
@Override
public Object execute() throws Exception {
- eventAdmin.sendEvent(new Event(topic, parse(propertiesSt)));
+ eventAdmin.sendEvent(new Event(topic, parse(properties)));
return null;
}
- Map<String, String> parse(String propSt) {
+ static Map<String, String> parse(List<String> propList) {
Map<String, String> properties = new HashMap<>();
- for (String keyValue : propSt.split(",")) {
- String[] splitted = keyValue.split("=");
- if (splitted.length != 2) {
- throw new IllegalArgumentException("Invalid entry " + keyValue);
+ if (propList != null) {
+ for (String keyValue : propList) {
+ int splitAt = keyValue.indexOf("=");
+ if (splitAt <= 0) {
+ throw new IllegalArgumentException("Invalid property " + keyValue);
+ } else {
+ String key = keyValue.substring(0, splitAt);
+ String value = keyValue.substring(splitAt + 1, keyValue.length());
+ properties.put(key, value);
+ }
}
- properties.put(splitted[0], splitted[1]);
- };
+ }
return properties;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/fe928b87/event/src/test/java/org/apache/karaf/event/command/EventSendCommandTest.java
----------------------------------------------------------------------
diff --git a/event/src/test/java/org/apache/karaf/event/command/EventSendCommandTest.java b/event/src/test/java/org/apache/karaf/event/command/EventSendCommandTest.java
index ba56179..96f3413 100644
--- a/event/src/test/java/org/apache/karaf/event/command/EventSendCommandTest.java
+++ b/event/src/test/java/org/apache/karaf/event/command/EventSendCommandTest.java
@@ -7,9 +7,12 @@ import static org.easymock.EasyMock.newCapture;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import static org.hamcrest.CoreMatchers.equalTo;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.apache.karaf.event.command.EventSendCommand;
@@ -19,6 +22,7 @@ import org.osgi.service.event.Event;
import org.osgi.service.event.EventAdmin;
public class EventSendCommandTest {
+
@Test
public void testExecute() throws Exception {
EventSendCommand send = new EventSendCommand();
@@ -29,7 +33,7 @@ public class EventSendCommandTest {
replay(send.eventAdmin);
send.topic = "myTopic";
- send.propertiesSt = "a=b";
+ send.properties = Arrays.asList("a=b");
send.execute();
verify(send.eventAdmin);
@@ -40,17 +44,39 @@ public class EventSendCommandTest {
@Test
public void testParse() {
- String propSt = "a=b,b=c";
+ List<String> propList = Arrays.asList("a=b","b=c");
Map<String, String> expectedMap = new HashMap<>();
expectedMap.put("a", "b");
expectedMap.put("b", "c");
- Map<String, String> props = new EventSendCommand().parse(propSt);
- assertThat(props.entrySet(), equalTo(expectedMap.entrySet()));
+ Map<String, String> props = EventSendCommand.parse(propList);
+ assertThat(props.size(), equalTo(2));
+ assertThat(props.get("a"), equalTo("b"));
+ assertThat(props.get("b"), equalTo("c"));
+ }
+
+ @Test
+ public void testParseNull() {
+ Map<String, String> props = EventSendCommand.parse(null);
+ assertNotNull(props);
+ assertThat(props.size(), equalTo(0));
+ }
+
+ @Test(expected=IllegalArgumentException.class)
+ public void testParseNoKeyValue() {
+ EventSendCommand.parse(Arrays.asList("="));
}
@Test(expected=IllegalArgumentException.class)
- public void testParseError() {
- String propSt = "a=b,c=";
- new EventSendCommand().parse(propSt);
+ public void testParseNoKey() {
+ EventSendCommand.parse(Arrays.asList("=b"));
+ }
+
+ @Test
+ public void testParseStrange() {
+ Map<String, String> props = EventSendCommand.parse(Arrays.asList("a=b","c=d=3", "e="));
+ assertThat(props.size(), equalTo(3));
+ assertThat(props.get("a"), equalTo("b"));
+ assertThat(props.get("c"), equalTo("d=3"));
+ assertThat(props.get("e"), equalTo(""));
}
}