| 
GigaSpaces XAP 9.1 API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.sun.jini.start.ActivateWrapper
public class ActivateWrapper
A wrapper for activatable objects, providing separation of the import codebase (where the server classes are loaded from by the activation group) from the export codebase (where clients should load classes from for stubs, etc.) as well as providing an independent security policy file for each activatable object. This functionality allows multiple activatable objects to be placed in the same activation group, with each object maintaining a distinct codebase and policy.
This wrapper class is assumed to be available directly in the activation group VM; that is, it is assumed to be in the application classloader, the extension classloader, or the boot classloader, rather than being downloaded. Since this class also needs considerable permissions, the easiest thing to do is to make it an installed extension.
 This wrapper class performs a security check to control what 
 policy files can be used with a given codebase. 
 It does this by querying the VM's (global) policy for 
 SharedActivationPolicyPermission 
 grants. The service's associated 
 ActivateDesc.importLocation is used as 
 the CodeSource
 for selecting the appropriate permission set to 
 check against. If multiple codebases are used, then all the codebases must
 have the necessary SharedActivationPolicyPermission grants.
 
An example of how to use this wrapper:
 URL[] importURLs = new URL[] {new URL("http://myhost:8080/service.jar")};
 URL[] exportURLs = new URL[] {new URL("http://myhost:8080/service-dl.jar")};
 ActivationID aid 
     = ActivateWrapper.register(
                gid,
                new ActivateWrapper.ActivateDesc(
                        "foo.bar.ServiceImpl",
                        importURLs,
                        exportURLs,
                        "http://myhost:8080/service.policy",
                        new MarshalledObject(
                          new String[] { "/tmp/service.config" })
              ),
                true,
              activationSystem);
 
 
 Clients of this wrapper service need to implement the following "activation
 constructor":
 where,<impl>(ActivationID activationID, MarshalledObject data)
ProxyAccessor, which allows the service 
 implementation to provide a remote reference of its choosing.
 
 
 This implementation of ActivateWrapper
 supports the
 following Security property:
   
| • |  
       com.sun.jini.start.servicePolicyProvider
      | |
|---|---|---|
|   | Default: |  
         "net.jini.security.policy.DynamicPolicyProvider"
         
      | 
|   | Description: |  The fully qualified class name of a
       dynamic policy provider (see DynamicPolicy)
       which will be used to "wrap" all service policy files. 
       The implementation class needs to:
       
 
       A custom service policy provider can be very useful when trying to
       debug security related issues.
         | 
SharedActivationPolicyPermission, 
ActivationID, 
MarshalledObject, 
Remote, 
CodeSource, 
ProxyAccessor, 
Serialized Form| Nested Class Summary | |
|---|---|
static class | 
ActivateWrapper.ActivateDesc
Descriptor for registering a "wrapped" activatable object.  | 
| Constructor Summary | |
|---|---|
ActivateWrapper(ActivationID id,
                MarshalledObject data)
Activatable constructor.  | 
|
| Method Summary | |
|---|---|
static ActivationID | 
register(ActivationGroupID gid,
         ActivateWrapper.ActivateDesc desc,
         boolean restart,
         ActivationSystem sys)
Analog to Activatable.register() for activatable objects that want
 to use this wrapper mechanism. | 
| Methods inherited from class java.lang.Object | 
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Constructor Detail | 
|---|
public ActivateWrapper(ActivationID id,
                       MarshalledObject data)
                throws Exception
ActivateDesc from the 
     provided data parameter.
 ExportClassLoader using the 
     import and export codebases obtained from the provided 
     ActivateDesc, 
 SharedActivationPolicyPermission
 ExportClassLoader
     and the corresponding policy file obtained from the 
     ActivateDesc with the 
     AggregatePolicyProvider
 ExportClassLoader.
 Policy object, if any,  
 with a AggregatePolicyProvider.
id - The ActivationID of this objectdata - The activation data for this object
ExceptionActivateWrapper.ExportClassLoader, 
ActivateWrapper.ActivateDesc, 
AggregatePolicyProvider, 
SharedActivationPolicyPermission, 
Policy| Method Detail | 
|---|
public static ActivationID register(ActivationGroupID gid,
                                    ActivateWrapper.ActivateDesc desc,
                                    boolean restart,
                                    ActivationSystem sys)
                             throws ActivationException,
                                    RemoteException
Activatable.register() for activatable objects that want
 to use this wrapper mechanism.
ActivationException - if there was a problem registering
             the activatable class with the activation system
RemoteException - if there was a problem communicating
             with the activation system
  | 
GigaSpaces XAP 9.1 API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||