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 2015/01/02 14:01:06 UTC
karaf git commit: [KARAF-3430] Add username and password in the
generated ActiveMQ connection factory blueprint XML. Add itests about jms
feature
Repository: karaf
Updated Branches:
refs/heads/master fd135b633 -> f7ee506e8
[KARAF-3430] Add username and password in the generated ActiveMQ connection factory blueprint XML.
Add itests about jms feature
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/f7ee506e
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/f7ee506e
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/f7ee506e
Branch: refs/heads/master
Commit: f7ee506e8f59f2d7cf72791570f00b0f7e538d02
Parents: fd135b6
Author: Jean-Baptiste Onofré <jb...@apache.org>
Authored: Fri Jan 2 14:00:17 2015 +0100
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Fri Jan 2 14:00:17 2015 +0100
----------------------------------------------------------------------
.../java/org/apache/karaf/itests/JaasTest.java | 2 -
.../java/org/apache/karaf/itests/JmsTest.java | 52 ++++++++++++++++++++
.../java/org/apache/karaf/jms/JmsMBean.java | 12 +++++
.../java/org/apache/karaf/jms/JmsService.java | 12 +++++
.../apache/karaf/jms/command/CreateCommand.java | 8 ++-
.../apache/karaf/jms/internal/JmsMBeanImpl.java | 9 ++++
.../karaf/jms/internal/JmsServiceImpl.java | 7 +++
.../jms/internal/connectionfactory-activemq.xml | 2 +
8 files changed, 101 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/f7ee506e/itests/src/test/java/org/apache/karaf/itests/JaasTest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/JaasTest.java b/itests/src/test/java/org/apache/karaf/itests/JaasTest.java
index a329899..eb8b656 100644
--- a/itests/src/test/java/org/apache/karaf/itests/JaasTest.java
+++ b/itests/src/test/java/org/apache/karaf/itests/JaasTest.java
@@ -13,7 +13,6 @@
*/
package org.apache.karaf.itests;
-import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -32,7 +31,6 @@ import org.junit.runner.RunWith;
import org.ops4j.pax.exam.junit.PaxExam;
import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
import org.ops4j.pax.exam.spi.reactors.PerClass;
-import org.ops4j.pax.exam.spi.reactors.PerMethod;
import org.osgi.framework.BundleContext;
http://git-wip-us.apache.org/repos/asf/karaf/blob/f7ee506e/itests/src/test/java/org/apache/karaf/itests/JmsTest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/JmsTest.java b/itests/src/test/java/org/apache/karaf/itests/JmsTest.java
new file mode 100644
index 0000000..54ad643
--- /dev/null
+++ b/itests/src/test/java/org/apache/karaf/itests/JmsTest.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.itests;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
+import org.ops4j.pax.exam.spi.reactors.PerClass;
+
+import java.net.URI;
+
+@RunWith(PaxExam.class)
+@ExamReactorStrategy(PerClass.class)
+public class JmsTest extends KarafTestSupport {
+
+ @Before
+ public void installJmsFeatureAndActiveMQBroker() throws Exception {
+ installAndAssertFeature("jms");
+ featureService.addRepository(new URI("mvn:org.apache.activemq/activemq-karaf/5.10.0/xml/features"));
+ installAndAssertFeature("activemq-broker-noweb");
+ }
+
+
+ @Test
+ public void createActiveMQConnectionFactoryTest() throws Exception {
+ System.out.println(executeCommand("jms:create -t ActiveMQ -u karaf -p karaf --url tcp://localhost:61616 test"));
+ // give time to fileinstall to load the blueprint file
+ Thread.sleep(5000);
+ String info = executeCommand("jms:info test");
+ System.out.println(info);
+ assertContains("ActiveMQ", info);
+ assertContains("5.10.0", info);
+ System.out.println(executeCommand("jms:send test queue message"));
+ String consumed = executeCommand("jms:consume test queue");
+ System.out.println(consumed);
+ assertContains("1 message", consumed);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/karaf/blob/f7ee506e/jms/src/main/java/org/apache/karaf/jms/JmsMBean.java
----------------------------------------------------------------------
diff --git a/jms/src/main/java/org/apache/karaf/jms/JmsMBean.java b/jms/src/main/java/org/apache/karaf/jms/JmsMBean.java
index 8540b86..0e7a012 100644
--- a/jms/src/main/java/org/apache/karaf/jms/JmsMBean.java
+++ b/jms/src/main/java/org/apache/karaf/jms/JmsMBean.java
@@ -45,6 +45,18 @@ public interface JmsMBean {
void create(String name, String type, String url) throws MBeanException;
/**
+ * Create a JMS connection factory.
+ *
+ * @param name the JMS connection factory name.
+ * @param type the JMS connection factory type (ActiveMQ or WebsphereMQ).
+ * @param url the JMS connection factory URL. NB: when type is WebsphereMQ, the URL has the format host/port/queuemanager/channel.
+ * @param username the JMS connection factory authentication username.
+ * @param password the JMS connection factory authentication password.
+ * @throws MBeanException
+ */
+ void create(String name, String type, String url, String username, String password) throws MBeanException;
+
+ /**
* Delete a JMS connection factory.
*
* @param name the JMS connection factory name.
http://git-wip-us.apache.org/repos/asf/karaf/blob/f7ee506e/jms/src/main/java/org/apache/karaf/jms/JmsService.java
----------------------------------------------------------------------
diff --git a/jms/src/main/java/org/apache/karaf/jms/JmsService.java b/jms/src/main/java/org/apache/karaf/jms/JmsService.java
index 8aa970f..73d9521 100644
--- a/jms/src/main/java/org/apache/karaf/jms/JmsService.java
+++ b/jms/src/main/java/org/apache/karaf/jms/JmsService.java
@@ -51,6 +51,18 @@ public interface JmsService {
void create(String name, String type, String url) throws Exception;
/**
+ * Create a new JMS connection factory.
+ *
+ * @param name the JMS connection factory name.
+ * @param type the JMS connection factory type (ActiveMQ, WebsphereMQ, ...).
+ * @param url the JMS URL to use.
+ * @param username the username to use.
+ * @param password the password to use.
+ * @throws Exception
+ */
+ void create(String name, String type, String url, String username, String password) throws Exception;
+
+ /**
* Delete a JMS connection factory.
*
* @param name the JMS connection factory name.
http://git-wip-us.apache.org/repos/asf/karaf/blob/f7ee506e/jms/src/main/java/org/apache/karaf/jms/command/CreateCommand.java
----------------------------------------------------------------------
diff --git a/jms/src/main/java/org/apache/karaf/jms/command/CreateCommand.java b/jms/src/main/java/org/apache/karaf/jms/command/CreateCommand.java
index c2c7eca..fb91416 100644
--- a/jms/src/main/java/org/apache/karaf/jms/command/CreateCommand.java
+++ b/jms/src/main/java/org/apache/karaf/jms/command/CreateCommand.java
@@ -37,9 +37,15 @@ public class CreateCommand extends JmsCommandSupport {
@Option(name = "--url", description = "URL of the JMS broker. For WebsphereMQ type, the URL is hostname/port/queuemanager/channel", required = false, multiValued = false)
String url = "tcp://localhost:61616";
+ @Option(name = "-u", aliases = { "--username" }, description = "Username to connect to the JMS broker", required = false, multiValued = false)
+ String username = "karaf";
+
+ @Option(name = "-p", aliases = { "--password" }, description = "Password to connect to the JMS broker", required = false, multiValued = false)
+ String password = "karaf";
+
@Override
public Object execute() throws Exception {
- getJmsService().create(name, type, url);
+ getJmsService().create(name, type, url, username, password);
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/f7ee506e/jms/src/main/java/org/apache/karaf/jms/internal/JmsMBeanImpl.java
----------------------------------------------------------------------
diff --git a/jms/src/main/java/org/apache/karaf/jms/internal/JmsMBeanImpl.java b/jms/src/main/java/org/apache/karaf/jms/internal/JmsMBeanImpl.java
index cc46434..e3b7801 100644
--- a/jms/src/main/java/org/apache/karaf/jms/internal/JmsMBeanImpl.java
+++ b/jms/src/main/java/org/apache/karaf/jms/internal/JmsMBeanImpl.java
@@ -51,6 +51,15 @@ public class JmsMBeanImpl implements JmsMBean {
}
@Override
+ public void create(String name, String type, String url, String username, String password) throws MBeanException {
+ try {
+ jmsService.create(name, type, url, username, password);
+ } catch (Throwable t) {
+ throw new MBeanException(null, t.getMessage());
+ }
+ }
+
+ @Override
public void delete(String name) throws MBeanException {
try {
jmsService.delete(name);
http://git-wip-us.apache.org/repos/asf/karaf/blob/f7ee506e/jms/src/main/java/org/apache/karaf/jms/internal/JmsServiceImpl.java
----------------------------------------------------------------------
diff --git a/jms/src/main/java/org/apache/karaf/jms/internal/JmsServiceImpl.java b/jms/src/main/java/org/apache/karaf/jms/internal/JmsServiceImpl.java
index 6aaf70e..b4f394a 100644
--- a/jms/src/main/java/org/apache/karaf/jms/internal/JmsServiceImpl.java
+++ b/jms/src/main/java/org/apache/karaf/jms/internal/JmsServiceImpl.java
@@ -49,6 +49,11 @@ public class JmsServiceImpl implements JmsService {
@Override
public void create(String name, String type, String url) throws Exception {
+ create(name, type, url, null, null);
+ }
+
+ @Override
+ public void create(String name, String type, String url, String username, String password) throws Exception {
if (!type.equalsIgnoreCase("activemq") && !type.equalsIgnoreCase("webspheremq")) {
throw new IllegalArgumentException("JMS connection factory type not known");
}
@@ -61,6 +66,8 @@ public class JmsServiceImpl implements JmsService {
if (type.equalsIgnoreCase("activemq")) {
// activemq
properties.put("url", url);
+ properties.put("username", username);
+ properties.put("password", password);
template = "connectionfactory-activemq.xml";
} else {
// webspheremq
http://git-wip-us.apache.org/repos/asf/karaf/blob/f7ee506e/jms/src/main/resources/org/apache/karaf/jms/internal/connectionfactory-activemq.xml
----------------------------------------------------------------------
diff --git a/jms/src/main/resources/org/apache/karaf/jms/internal/connectionfactory-activemq.xml b/jms/src/main/resources/org/apache/karaf/jms/internal/connectionfactory-activemq.xml
index f0aabbd..5627e73 100644
--- a/jms/src/main/resources/org/apache/karaf/jms/internal/connectionfactory-activemq.xml
+++ b/jms/src/main/resources/org/apache/karaf/jms/internal/connectionfactory-activemq.xml
@@ -19,6 +19,8 @@
<bean id="activemqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${url}" />
+ <property name="userName" value="${username}" />
+ <property name="password" value="${password}" />
</bean>
<bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">