PlugInHelper.publishAddExpansion(getSubscriber(), newexp);
PlugInHelper.publishAddExpansion(getBlackboardService(), newexp);
  private void expandGLS(Task t) {    Vector subtasks = new Vector();    NewWorkflow tmp = ldmf.newWorkflow();    //tmp.setIsPropagatingToSubtasks();    for (Iterator iterator = mySubs.values().iterator();         iterator.hasNext();) {      Asset orga = (Asset) iterator.next();      Task newtask = createSubTasks(t, orga);      ((NewTask)newtask).setWorkflow(tmp);      subtasks.addElement(newtask);    }    tmp.setParentTask(t);    if ( !(subtasks.isEmpty()) ) {      tmp.setTasks(subtasks.elements());       // set the original workflow so that you have a handle for additions      origGlsWf = tmp;      // package up the workflow in an expansion      Expansion newexp = ldmf.createExpansion(ldmf.getRealityPlan(), t, tmp, null);      //publishMyPlanElement(newexp);      //publish the Expansion and worflow subtasks all in one      PlugInHelper.publishAddExpansion(getSubscriber(), newexp);      //now allocate the tasks in the new workflow      allocateGLS(tmp);    } else {      /* put set waitingForSub to this task - when atleast one sub shows	 up - then make the origGlsWf.      */      waitingForSub = t;      /* also sent the task to allocateMNG to allocate it to a fake manage 	 assets so that the AllocationResult rollups will work until 	 there are subs (or in the case where there will never be subs.      */      allocateMNG(t);    }  }