protected void startNode() throws IMTPException, ProfileException, ServiceException, JADESecurityException, NotFoundException { // Initialize all services (without activating them) List services = new ArrayList(); initMandatoryServices(services); List l = myProfile.getSpecifiers(Profile.SERVICES); myProfile.setSpecifiers(Profile.SERVICES, l); // Avoid parsing services twice initAdditionalServices(l.iterator(), services); // Register with the platform ServiceDescriptor[] descriptors = new ServiceDescriptor[services.size()]; for (int i = 0; i < descriptors.length; ++i) { descriptors[i] = (ServiceDescriptor) services.get(i); } if (theBEManager != null) { myNodeDescriptor.setParentNode(theBEManager.getNode()); } // Actually join the platform (this call can modify the name of this container) getServiceManager().addNode(myNodeDescriptor, descriptors); if (theBEManager != null) { theBEManager.register(myNodeDescriptor); } // Once we are connected, boot all services bootAllServices(services); }
public void shutDown() { // Avoid two parallel shut-downs synchronized (this) { if (terminating) { return; } else { terminating = true; } } // Forward the exit command to the FrontEnd try { myFrontEnd.exit(false); } catch (IMTPException imtpe) { // The FrontEnd is disconnected. Force the shutdown of the connection myConnectionManager.shutdown(); } // "Kill" all agent images killAgentImages(); if (theBEManager != null) { theBEManager.deregister(myNodeDescriptor); } super.shutDown(); }
private BackEndManager initBEManager() { try { return BackEndManager.getInstance(null); } catch (Exception e) { myLogger.log(Logger.WARNING, "Cannot retrieve BackEndManager. " + e); e.printStackTrace(); } return null; }