ComponentInstance providerInstance = providerFactory
.createComponentInstance(properties);
ServiceReference providerService = ipojoHelper
.getServiceReferenceByName(DonutProvider.class
.getName(), providerInstance.getInstanceName());
DonutProvider provider = (DonutProvider) bc
.getService(providerService);
// The consumer
properties = new Hashtable();
ComponentFactory consumerFactory = new ComponentFactory(bc,
m_consumer);
consumerFactory.start();
properties.put("instance.name", "Homer Simpson");
properties.put("slow", "false");
ComponentInstance consumerInstance = consumerFactory
.createComponentInstance(properties);
ServiceReference consumerService = ipojoHelper
.getServiceReferenceByName(DonutConsumer.class
.getName(), consumerInstance.getInstanceName());
DonutConsumer consumer = (DonutConsumer) bc
.getService(consumerService);
/**
* Test the normal behaviour of the instances.
*/
consumer.clearDonuts();
Donut sentDonut = provider.sellDonut();
Donut receivedDonut = consumer.waitForDonut();
assertEquals("The received donut must be the same as the sent one.",
sentDonut, receivedDonut);
/**