SmartFrog 3.10.000

org.smartfrog.sfcore.prim
Class PrimDeployerImpl

java.lang.Object
  extended by org.smartfrog.sfcore.prim.PrimDeployerImpl
All Implemented Interfaces:
MessageKeys, ComponentDeployer
Direct Known Subclasses:
PrimHostDeployerImpl

public class PrimDeployerImpl
extends java.lang.Object
implements ComponentDeployer, MessageKeys

This class implements the deployment semantics for primitives. This means looking up the sfClass attribute and creating an instance of that class. After this the rest of the deployment is left to the instance. The deployer implements the ComponentDeployer interface.


Field Summary
protected static Reference refClass
          Efficiency holder of sfClass reference.
protected static Reference refCodeBase
          Efficiency holder of sfCodeBase reference.
 ComponentDescription target
          The target description to work of.
 
Fields inherited from interface org.smartfrog.sfcore.common.MessageKeys
CANNOT_LINK_TO_PREDICATE, COMPONENT_TERMINATED, COPY_FAILED, COPY_SERIALIZE_FAILED, ERROR_NO_SECURITY_BUT_REQUIRED, ILLEGAL_BOOLEAN_PARAMETER, ILLEGAL_NUMERIC_PARAMETER, ILLEGAL_STRING_PARAMETER, ILLEGAL_VECTOR_PARAMETER, LIVENESS_SEND_FAILURE, LIVENESS_SEND_FAILURE_IN, MISSING_PARAMETER, MSG_CLASS_NOT_FOUND, MSG_CONNECT_ERR, MSG_CONT_OTHER_DEPLOY, MSG_DEPLOY_COMP_TERMINATED, MSG_DEPLOY_SUCCESS, MSG_DEPLOYWITH_PHASE_FAILED, MSG_DETACH_SUCCESS, MSG_DETACH_TERMINATE_SUCCESS, MSG_ERR_DEPLOY_FROM_URL, MSG_ERR_PARSE, MSG_ERR_RESOLVE_PHASE, MSG_ERR_SF_RUNNING, MSG_ERR_TERM, MSG_FAILED_INET_ADDRESS_LOOKUP, MSG_FAILED_TO_CONTACT_PARENT, MSG_FILE_NOT_FOUND, MSG_HOOK_ACTION_FAILED, MSG_ILLEGAL_ACCESS, MSG_ILLEGAL_CLASS_TYPE, MSG_ILLEGAL_CLASS_TYPE_EXPECTING_GOT, MSG_ILLEGAL_REFERENCE, MSG_INPUTSTREAM_NULL, MSG_INSTANTIATION_ERROR, MSG_INVALID_OBJECT_TYPE, MSG_INVOCATION_TARGET, MSG_LANG_NOT_FOUND, MSG_LIVENESS_START_FAILED, MSG_LOADING_URL, MSG_METHOD_NOT_FOUND, MSG_NON_REP_ATTRIB, MSG_NOT_COMPONENT_REFERENCE, MSG_NOT_FOUND_ATTRIBUTE, MSG_NOT_FOUND_REFERENCE, MSG_NOT_VALUE_REFERENCE, MSG_NULL_DEF_METHOD, MSG_NULL_URL, MSG_OBJECT_REGISTRATION_FAILED, MSG_PARENT_LOCATION_FAILED, MSG_PING_SUCCESS, MSG_RANDM_ERR, MSG_REMOTE_CONNECT_ERR, MSG_REPEATED_ATTRIBUTE, MSG_SF_DEAD, MSG_SF_READY, MSG_SF_TERMINATED, MSG_STACKTRACE_FOLLOWS, MSG_START_COMP_TERMINATED, MSG_TERMINATE_SUCCESS, MSG_UNHANDLED_EXCEPTION, MSG_UNKNOWN_HOST, MSG_UNRESOLVED_REFERENCE, MSG_UNRESOLVED_REFERENCE_IN, MSG_UPDATE_SUCCESS, MSG_URL_NOT_FOUND, MSG_URL_TO_PARSE_NOT_FOUND, MSG_WARNING_LIVENESS_ENABLED, MSG_WARNING_STACKTRACE_DISABLED, MSG_WARNING_STACKTRACE_ENABLED, ROOT_MUST_BE_COMPONENT, WARN_NO_SECURITY
 
Constructor Summary
PrimDeployerImpl(ComponentDescription descr)
          Constructs a component deployer for given description.
 
Method Summary
protected  Prim deploy(Prim parent)
          Does the basic deployment.
 Prim deploy(Reference name, Prim parent, Context params)
          Deploy target description for which this deployer was created.
protected  java.lang.Class getPrimClass()
          Get the class for the primitive to be deployed.
protected  java.lang.String getSfCodeBase(ComponentDescription desc)
          Gets the class code base by resolving the sfCodeBase attribute in the given description.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

refClass

protected static final Reference refClass
Efficiency holder of sfClass reference.


refCodeBase

protected static final Reference refCodeBase
Efficiency holder of sfCodeBase reference.


target

public ComponentDescription target
The target description to work of.

Constructor Detail

PrimDeployerImpl

public PrimDeployerImpl(ComponentDescription descr)
Constructs a component deployer for given description.

Parameters:
descr - target description
Method Detail

deploy

protected Prim deploy(Prim parent)
               throws SmartFrogDeploymentException
Does the basic deployment. The instance created and the deployment forwarded to the primitive. Subclasses can override this to provide different deployment implementations.

Parameters:
parent - parent for deployed component
Returns:
Prim
Throws:
SmartFrogDeploymentException - In case of any error while deploying the component

getSfCodeBase

protected java.lang.String getSfCodeBase(ComponentDescription desc)
Gets the class code base by resolving the sfCodeBase attribute in the given description.

Parameters:
desc - Description in which we resolve the code base.
Returns:
class code base for that description.

getPrimClass

protected java.lang.Class getPrimClass()
                                throws java.lang.Exception
Get the class for the primitive to be deployed. This is where the sfClass attribute is looked up, using the classloader returned by getPrimClassLoader

Returns:
class for target
Throws:
java.lang.Exception - failed to load class

deploy

public Prim deploy(Reference name,
                   Prim parent,
                   Context params)
            throws SmartFrogDeploymentException
Deploy target description for which this deployer was created. This implementation resolves the given name, forwarding if non-null. In case of forwarding the resulting component is deploy resolved. If the name is null the parameters are added to the description. The description is NOT type, place and deploy since this is expected from higher level functionality. Deployement happens via the internal deploy method

Specified by:
deploy in interface ComponentDeployer
Parameters:
name - name of contained description to deploy (can be null)
parent - parent for deployed component
params - parameters for description
Returns:
Prim
Throws:
SmartFrogDeploymentException - failed to deploy description

SmartFrog CORE 3.10.000

(C) Copyright 1998-2006 Hewlett-Packard Development Company, LP