public void componentStarted(BundleContext context) throws Exception {
final File bundleDataArea = context.getDataFile("");
m_agentContext = new AgentContextImpl(bundleDataArea);
m_agentContext.setHandler(LoggingHandler.class, new LoggingHandlerImpl(context));
m_agentContext.setHandler(ConfigurationHandler.class, new ConfigurationHandlerImpl(context));
m_agentContext.setHandler(EventsHandler.class, new EventsHandlerImpl(context));
m_agentContext.setHandler(ScheduledExecutorService.class, m_executorService);
m_agentContext.setHandler(DownloadHandler.class, new DownloadHandlerImpl(bundleDataArea));
m_agentContext.setHandler(DeploymentHandler.class, new DeploymentHandlerImpl(context, m_packageAdmin));
m_agentContext.setHandler(AgentUpdateHandler.class, new AgentUpdateHandlerImpl(context));
m_agentContext.setHandler(FeedbackHandler.class, new FeedbackHandlerImpl());
IdentificationHandler identificationHandler = (m_identificationHandler != null) ? m_identificationHandler : new IdentificationHandlerImpl();
m_agentContext.setHandler(IdentificationHandler.class, identificationHandler);
DiscoveryHandler discoveryHandler = (m_discoveryHandler != null) ? m_discoveryHandler : new DiscoveryHandlerImpl();
m_agentContext.setHandler(DiscoveryHandler.class, discoveryHandler);
ConnectionHandler connectionHandler = (m_connectionHandler != null) ? m_connectionHandler : new ConnectionHandlerImpl();
m_agentContext.setHandler(ConnectionHandler.class, connectionHandler);
m_agentContext.addComponent(new EventLoggerImpl(context));
m_agentContext.setController(m_controller);
m_agentContext.start();
m_agentControlRegistration = context.registerService(AgentControl.class.getName(), new AgentControlImpl(m_agentContext), null);
}