use of com.adaptris.core.AdaptrisMarshaller in project interlok by adaptris.
the class AdapterManagerTest method testMBean_RemoveSharedService.
@Test
public void testMBean_RemoveSharedService() throws Exception {
String adapterName = this.getClass().getSimpleName() + "." + getName();
Adapter adapter = createAdapter(adapterName);
adapter.getSharedComponents().addService(new NullService(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.removeSharedService(getName()));
assertFalse(amp.removeSharedService("HelloWorld"));
Adapter marshalledAdapter = (Adapter) m.unmarshal(amp.getConfiguration());
assertEquals(0, marshalledAdapter.getSharedComponents().getServices().size());
} finally {
}
}
use of com.adaptris.core.AdaptrisMarshaller in project interlok by adaptris.
the class AdapterManagerTest method testMBean_RemoveSharedConnection_NotFound.
@Test
public void testMBean_RemoveSharedConnection_NotFound() 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);
assertFalse(amp.removeSharedConnection(getName() + "_1"));
Adapter marshalledAdapter = (Adapter) m.unmarshal(amp.getConfiguration());
assertEquals(1, marshalledAdapter.getSharedComponents().getConnections().size());
assertEquals(getName(), marshalledAdapter.getSharedComponents().getConnections().get(0).getUniqueId());
} finally {
}
}
use of com.adaptris.core.AdaptrisMarshaller 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.AdaptrisMarshaller 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.AdaptrisMarshaller 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