enterStateNotifying(LifecycleStateEnum.running, "running");
    private Prim deployThroughSFSystem(String hostname, String application,                                       DeploymentLanguage language, String url,                                       String subprocess) {        try {            ConfigurationDescriptor config = new ConfigurationDescriptor(                    application, url);            config.setHost(hostname);            config.setActionType(ConfigurationDescriptor.Action.DEPLOY);            if (subprocess != null) {                config.setSubProcess(subprocess);            }            //select the language            config.setContextAttribute(ActionDeploy.KEY_LANGUAGE,language.getExtension());            //tell the CDL runtime what the root component should be            log.info("Deploying " + url + " to " + hostname+" as "+language.getDescription());            //deploy, throwing an exception if we cannot            Object result = config.execute(null);            enterStateNotifying(LifecycleStateEnum.initialized, "initialized");            enterStateNotifying(LifecycleStateEnum.running, "running");            if(result instanceof CdlCompound) {                //we can subscribe to this because it implements a cdl compound                CdlCompound compound=(CdlCompound) result;                compound.subscribe(getAddress(), this);                return (Prim)compound;            } else if (result instanceof Prim) {                log.warn("We have not deployed a component that raises lifecycle events");                return (Prim) result;            } else {                final String message = "got something not a Prim back from a deployer";                log.error(message);                throw new BaseException(message + " " + result.toString());            }        } catch (Exception exception) {            throw translateException(exception);        }    }