1 Reply Latest reply on Sep 23, 2007 5:01 PM by Ales Justin

    Serializable contract on deployer output

    Scott Stark Master

      A requirement that the AbstractParsingDeployerWithOutput.build(DeploymentUnit unit, Map<String, ManagedObject> managedObjects) imposes on the deployer output is that it must be Serialziable in order for the default ManagedObjectFactory to be usable. A change was made to only check the output type:

       // we can check for Serializable w/o searching for attachment
       if (Serializable.class.isAssignableFrom(getOutput()) == false)
       log.debug("Skipping ManagedObject since T(" + getOutput() + ") is not Serializable");

      this does not work for interfaces in general, even though the actual implementation may be Serializable as is the case for the BeanDeployer KernelDeployment output.

      Previously this was checking the actual output attachment instance for Serializable. We need to restore this check, or just attempt to create the object if the buildManagedObject property is true.