use of com.adaptris.core.Adapter in project interlok by adaptris.
the class AdapterManagerTest method testInitialise_WithTimeout_InitFailure.
@Test
public void testInitialise_WithTimeout_InitFailure() throws Exception {
TimeInterval standardTimeout = new TimeInterval(2L, TimeUnit.SECONDS);
String adapterName = this.getClass().getSimpleName() + "." + getName();
Adapter adapter = createAdapter(adapterName);
MockFailingConnection conn = new MockFailingConnection(getName(), "Init");
conn.setConnectionAttempts(3);
conn.setConnectionRetryInterval(new TimeInterval(100L, TimeUnit.MILLISECONDS));
adapter.getSharedComponents().addConnection(conn);
AdapterManager adapterManager = new AdapterManager(adapter);
try {
adapterManager.registerMBean();
ObjectName adapterObj = createAdapterObjectName(adapterName);
AdapterManagerMBean manager = JMX.newMBeanProxy(mBeanServer, adapterObj, AdapterManagerMBean.class);
try {
manager.requestInit(standardTimeout.toMilliseconds());
fail();
} catch (CoreException expected) {
}
} finally {
adapterManager.requestClose();
adapterManager.unregisterMBean();
}
}
use of com.adaptris.core.Adapter in project interlok by adaptris.
the class AdapterManagerTest method testMBean_SharedConnection_GarbageCollectedReferences.
@Test
public void testMBean_SharedConnection_GarbageCollectedReferences() throws Exception {
// Tests the behaviour with WeakHashMap inside AdaptrisConnectionImp
// We use the AdapterManager to test this, because we marshal the channel to XML to add it
// to the channel so we aren't actually holding a reference to it for the test.
String adapterName = this.getClass().getSimpleName() + "." + getName();
Adapter adapter = createAdapter(adapterName);
AdapterManager adapterManager = new AdapterManager(adapter);
ObjectName adapterObj = adapterManager.createObjectName();
Channel newChannel = createChannel(getName(), 1);
newChannel.setConsumeConnection(new SharedConnection(getName()));
newChannel.setProduceConnection(new SharedConnection(getName()));
StandardWorkflow wf = (StandardWorkflow) newChannel.getWorkflowList().getWorkflows().get(0);
MockServiceWithConnection service = new MockServiceWithConnection(new SharedConnection(getName()));
wf.getServiceCollection().add(service);
AdaptrisMarshaller m = DefaultMarshaller.getDefaultMarshaller();
List<BaseComponentMBean> mBeans = new ArrayList<BaseComponentMBean>();
mBeans.add(adapterManager);
mBeans.addAll(adapterManager.getAllDescendants());
try {
register(mBeans);
// Add the shared connection and the channel.
adapterManager.addSharedConnection(m.marshal(new NullConnection(getName())));
adapterManager.addChannel(m.marshal(newChannel));
adapterManager.requestStart();
adapterManager.requestClose();
NullConnection beforeRemove = (NullConnection) adapterManager.getWrappedComponent().getSharedComponents().getConnections().get(0);
assertEquals(1, beforeRemove.retrieveMessageConsumers().size());
assertEquals(1, beforeRemove.retrieveMessageProducers().size());
// one for the channel, and one for the service.
assertEquals(2, beforeRemove.retrieveExceptionListeners().size());
adapterManager.removeChannel(getName());
// Suggest a garbage collection which *should* remove the references for the connection.
System.gc();
Thread.sleep(1000);
adapterManager.requestStart();
NullConnection afterRemove = (NullConnection) adapterManager.getWrappedComponent().getSharedComponents().getConnections().get(0);
assertEquals(0, afterRemove.retrieveMessageConsumers().size());
assertEquals(0, afterRemove.retrieveMessageProducers().size());
assertEquals(0, afterRemove.retrieveExceptionListeners().size());
} finally {
adapterManager.requestClose();
}
}
use of com.adaptris.core.Adapter in project interlok by adaptris.
the class AdapterManagerTest method testMBean_ContainsSharedConnection.
@Test
public void testMBean_ContainsSharedConnection() throws Exception {
String adapterName = this.getClass().getSimpleName() + "." + getName();
Adapter adapter = createAdapter(adapterName);
adapter.getSharedComponents().addConnection(new NullConnection(getName()));
AdapterManager adapterManager = new AdapterManager(adapter);
ObjectName adapterObj = adapterManager.createObjectName();
AdaptrisMarshaller m = DefaultMarshaller.getDefaultMarshaller();
try {
adapterManager.registerMBean();
AdapterManagerMBean amp = JMX.newMBeanProxy(mBeanServer, adapterObj, AdapterManagerMBean.class);
assertTrue(amp.containsSharedConnection(getName()));
} finally {
}
}
use of com.adaptris.core.Adapter in project interlok by adaptris.
the class AdapterManagerTest method testInitialise.
@Test
public void testInitialise() throws Exception {
String adapterName = this.getClass().getSimpleName() + "." + getName();
Adapter adapter = createAdapter(adapterName, 2, 2);
List<BaseComponentMBean> mBeans = createJmxManagers(adapter);
try {
register(mBeans);
ObjectName adapterObj = createAdapterObjectName(adapterName);
AdapterManagerMBean manager = JMX.newMBeanProxy(mBeanServer, adapterObj, AdapterManagerMBean.class);
manager.requestInit();
assertEquals(InitialisedState.getInstance(), manager.getComponentState());
} finally {
adapter.requestClose();
}
}
use of com.adaptris.core.Adapter in project interlok by adaptris.
the class AdapterManagerTest method testMBean_AddSharedConnection_Duplicate.
@Test
public void testMBean_AddSharedConnection_Duplicate() throws Exception {
String adapterName = this.getClass().getSimpleName() + "." + getName();
Adapter adapter = createAdapter(adapterName);
AdapterManager adapterManager = new AdapterManager(adapter);
ObjectName adapterObj = adapterManager.createObjectName();
AdaptrisMarshaller m = DefaultMarshaller.getDefaultMarshaller();
try {
adapterManager.registerMBean();
AdapterManagerMBean amp = JMX.newMBeanProxy(mBeanServer, adapterObj, AdapterManagerMBean.class);
assertTrue(amp.addSharedConnection(m.marshal(new NullConnection(getName()))));
assertFalse(amp.addSharedConnection(m.marshal(new NullConnection(getName()))));
Adapter marshalledAdapter = (Adapter) m.unmarshal(amp.getConfiguration());
assertEquals(1, marshalledAdapter.getSharedComponents().getConnections().size());
assertEquals(getName(), marshalledAdapter.getSharedComponents().getConnections().get(0).getUniqueId());
} finally {
}
}
Aggregations