try {
// instantiate the component specified by the className
logger.finest("creating component instance");
Class componentClass = Class.forName(className);
MobileComponent component =
(MobileComponent) componentClass.newInstance();
// create a new services object
MobileServicesImpl services = new MobileServicesImpl(instanceName);
// set the component for the services object
services.setComponent(component);
// retrieve the ComponentID for this component
if (!(services.getComponentID() instanceof MobileComponentIDServerImpl))
throw new NonstandardException("ComponentID not an instance of MobileComponentIDServerImpl");
MobileComponentIDServerImpl cid =
(MobileComponentIDServerImpl) services.getComponentID();
// set the GSH for this ComponentID
cid.setGSH(instanceHandle);
// Add a reference to this ComponentID into the Handle Resolver
HandleResolver.addReference(instanceHandle, cid);
// if this component has been migrated, return here
if (isMigrated) {
logger.finest("Component is migrated, setServices will not be invoked");
return;
}
// invoke the setServices method on the component
try {
component.setServices(services);
} catch (Exception e) {
logger.severe("Can't invoke setServices on component", e);
throw new NonstandardException("Can't invoke setServices on component", e);
}