This closes #171
This commit is contained in:
commit
0a3ec0f4da
|
@ -696,6 +696,11 @@ public class ActiveMQActivationSpec extends ConnectionFactoryProperties implemen
|
||||||
propsNotSet.add(new PropertyDescriptor("subscriptionName", ActiveMQActivationSpec.class));
|
propsNotSet.add(new PropertyDescriptor("subscriptionName", ActiveMQActivationSpec.class));
|
||||||
errorMessages.add("If subscription is durable then subscription name must be specified.");
|
errorMessages.add("If subscription is durable then subscription name must be specified.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((isSubscriptionDurable() && getClientID() == null) || (isSubscriptionDurable() && getClientID() != null && getClientID().length() == 0)) {
|
||||||
|
propsNotSet.add(new PropertyDescriptor("clientID", ActiveMQActivationSpec.class));
|
||||||
|
errorMessages.add("If subscription is durable then clientID must be specified.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (IntrospectionException e) {
|
catch (IntrospectionException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
|
@ -714,6 +714,65 @@ public class ActiveMQMessageHandlerTest extends ActiveMQRATestBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testNullClientID() throws Exception {
|
||||||
|
ActiveMQResourceAdapter qResourceAdapter = newResourceAdapter();
|
||||||
|
MyBootstrapContext ctx = new MyBootstrapContext();
|
||||||
|
qResourceAdapter.start(ctx);
|
||||||
|
|
||||||
|
ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
|
||||||
|
spec.setResourceAdapter(qResourceAdapter);
|
||||||
|
spec.setUseJNDI(false);
|
||||||
|
spec.setDestination("mdbTopic");
|
||||||
|
spec.setSubscriptionDurability("Durable");
|
||||||
|
spec.setSubscriptionName("sub");
|
||||||
|
spec.setSetupAttempts(1);
|
||||||
|
spec.setShareSubscriptions(true);
|
||||||
|
spec.setMaxSession(1);
|
||||||
|
|
||||||
|
CountDownLatch latch = new CountDownLatch(5);
|
||||||
|
DummyMessageEndpoint endpoint = new DummyMessageEndpoint(latch);
|
||||||
|
DummyMessageEndpointFactory endpointFactory = new DummyMessageEndpointFactory(endpoint, false);
|
||||||
|
try {
|
||||||
|
qResourceAdapter.endpointActivation(endpointFactory, spec);
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
assertTrue(e instanceof InvalidPropertyException);
|
||||||
|
assertEquals("clientID", ((InvalidPropertyException) e).getInvalidPropertyDescriptors()[0].getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEmptyClientID() throws Exception {
|
||||||
|
ActiveMQResourceAdapter qResourceAdapter = newResourceAdapter();
|
||||||
|
MyBootstrapContext ctx = new MyBootstrapContext();
|
||||||
|
qResourceAdapter.start(ctx);
|
||||||
|
|
||||||
|
ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
|
||||||
|
spec.setResourceAdapter(qResourceAdapter);
|
||||||
|
spec.setUseJNDI(false);
|
||||||
|
spec.setDestination("mdbTopic");
|
||||||
|
spec.setSubscriptionDurability("Durable");
|
||||||
|
spec.setSubscriptionName("sub");
|
||||||
|
spec.setClientID("");
|
||||||
|
spec.setSetupAttempts(1);
|
||||||
|
spec.setShareSubscriptions(true);
|
||||||
|
spec.setMaxSession(1);
|
||||||
|
|
||||||
|
CountDownLatch latch = new CountDownLatch(5);
|
||||||
|
DummyMessageEndpoint endpoint = new DummyMessageEndpoint(latch);
|
||||||
|
DummyMessageEndpointFactory endpointFactory = new DummyMessageEndpointFactory(endpoint, false);
|
||||||
|
try {
|
||||||
|
qResourceAdapter.endpointActivation(endpointFactory, spec);
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
assertTrue(e instanceof InvalidPropertyException);
|
||||||
|
assertEquals("clientID", ((InvalidPropertyException) e).getInvalidPropertyDescriptors()[0].getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBadDestinationType() throws Exception {
|
public void testBadDestinationType() throws Exception {
|
||||||
ActiveMQResourceAdapter qResourceAdapter = newResourceAdapter();
|
ActiveMQResourceAdapter qResourceAdapter = newResourceAdapter();
|
||||||
|
|
Loading…
Reference in New Issue