00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030  
00031 package org.objectweb.proactive.calcium.proactive;
00032 
00033 import org.objectweb.proactive.ProActive;
00034 import org.objectweb.proactive.calcium.Skernel;
00035 import org.objectweb.proactive.core.descriptor.data.VirtualNode;
00036 import org.objectweb.proactive.core.node.Node;
00037 
00038 public class ProActiveManager extends AbstractProActiveManager {
00039         
00040         public ProActiveManager(Node[] nodes) {
00041                 super(nodes);
00042         }
00043         
00044         public ProActiveManager(VirtualNode vn){
00045                 super(vn);
00046         }
00047         
00048         public ProActiveManager(String descriptorPath, String virtualNodeName){
00049                 super(descriptorPath,virtualNodeName);
00050 
00051         }
00052         
00053         @Override
00054         public Skernel boot(Skernel skernel) {
00055                 ActiveObjectSkernel aom=null;
00056                 try{
00057                         if(logger.isDebugEnabled()){
00058                                 logger.debug("Creating Active Object Skernel");
00059                         }
00060                         aom = (ActiveObjectSkernel)ProActive.newActive(ActiveObjectSkernel.class.getName(), new Object[]{skernel});
00061                 }catch (Exception e){
00062                         e.printStackTrace();
00063                 }
00064 
00065                 
00066                 while(!skernel.hasReadyTask()){
00067                         aom.putTask(skernel.getReadyTask(0));
00068                 }
00069                 
00070                 try {
00071                         if(logger.isDebugEnabled()){
00072                                 logger.debug("Creating Active Object Interpreters");
00073                         }
00074                         for(int i=0;i<nodes.length;i++){
00075                                 ActiveObjectInterpreter interp=(ActiveObjectInterpreter)ProActive.newActive(ActiveObjectInterpreter.class.getName(),null,nodes[i]);
00076                                 interp.start(aom);
00077                         }
00078                         
00079                 } catch (Exception e) {
00080                         e.printStackTrace();
00081                 }
00082                 
00083                 return aom;
00084         }
00085 }