reqDescr.startPlugin();
reqDescr.startPlugin(registry);
	final void startPlugin() throws PluginException {	    if (started) {	        return;	    }	    synchronized (this) {	        if (started || starting) {	            return;	        }	        starting = true;		    //BootLog.info("Resolve on plugin " + getId());		    try {		        AccessController.doPrivileged(new PrivilegedExceptionAction() {		            public Object run() throws PluginException {		        	    resolve();		        		final int reqMax = requires.length;		        		for (int i = 0; i < reqMax; i++) {		        			final String reqId = requires[i].getPluginId();		        		    //BootLog.info("Start dependency " + reqId);		        			final PluginDescriptorModel reqDescr = (PluginDescriptorModel)registry.getPluginDescriptor(reqId);		        			reqDescr.startPlugin();		        		}		        	    //BootLog.info("Start myself " + getId());		        		getPlugin().start();		                return null;		            }		        });		    } catch (PrivilegedActionException ex) {		        BootLog.error("Error starting plugin", ex);		        try {                    Thread.sleep(10000);                } catch (InterruptedException ex1) {                                        // Ignore                }		    } finally {		        started = true;		    }	    }	}