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.core.component.controller;
00032
00033 import java.net.URL;
00034
00035 import org.objectweb.fractal.api.Component;
00036 import org.objectweb.fractal.api.factory.InstantiationException;
00037 import org.objectweb.fractal.api.type.TypeFactory;
00038 import org.objectweb.proactive.ProActive;
00039 import org.objectweb.proactive.core.ProActiveRuntimeException;
00040 import org.objectweb.proactive.core.body.migration.MigrationException;
00041 import org.objectweb.proactive.core.component.Constants;
00042 import org.objectweb.proactive.core.component.identity.ProActiveComponentImpl;
00043 import org.objectweb.proactive.core.component.type.ProActiveTypeFactoryImpl;
00044 import org.objectweb.proactive.core.node.Node;
00045 import org.objectweb.proactive.core.node.NodeException;
00046 import org.objectweb.proactive.core.node.NodeFactory;
00047
00048
00049 public class MigrationControllerImpl extends AbstractProActiveController
00050 implements MigrationController {
00051 public MigrationControllerImpl(Component owner) {
00052 super(owner);
00053 }
00054
00055 @Override
00056 protected void setControllerItfType() {
00057 try {
00058 setItfType(ProActiveTypeFactoryImpl.instance()
00059 .createFcItfType(Constants.MIGRATION_CONTROLLER,
00060 MigrationController.class.getName(), TypeFactory.SERVER,
00061 TypeFactory.MANDATORY, TypeFactory.SINGLE));
00062 } catch (InstantiationException e) {
00063 throw new ProActiveRuntimeException(
00064 "cannot create controller type for controller " +
00065 this.getClass().getName());
00066 }
00067 }
00068
00069 public void migrateTo(Node node) throws MigrationException {
00070
00071 ((ProActiveComponentImpl)owner).migrateControllersDependentActiveObjectsTo(node);
00072 ProActive.migrateTo(node);
00073 }
00074
00075 public void migrateTo(URL url) throws MigrationException {
00076 try {
00077 migrateTo(NodeFactory.getNode(url.toString()));
00078 } catch (NodeException e) {
00079 throw new MigrationException("Cannot find node with URL " + url);
00080 }
00081 }
00082
00083 public void migrateTo(String stringUrl) throws MigrationException {
00084 try {
00085 migrateTo(NodeFactory.getNode(stringUrl));
00086 } catch (NodeException e) {
00087 throw new MigrationException("Cannot find node with URL " +
00088 stringUrl);
00089 }
00090 }
00091 }