Rodric-
Okay, I've created a new Ukernel class to encapsulate my microkernel, a 
UkernelFactory to produce Ukernels, and a UkernelFactoryProvider to instantiate 
a Factory.  I've updated the whisk.spi object (in reference.conf) to name the 
desired class (whisk.core.ukernel.UkernelFactoryProvider).  Everything 
compiles, but when I try to deploy I get the exception 
'whisk.core.ukernel.UkernelFactoryProvider$ cannot be cast to 
whisk.core.containerpool.ContainerFactoryProvider'.
I have searched, but cannot find any reason that SpiLoader should object to 
loading a class other than whisk.core.containerpool.ContainerFactoryProvider.
I'm obviously missing something, but I can't figure out what it is.  Does 
anyone have any ideas?
Thanks,
--James
>-----------------------------------------------------------------------------------
Hi James

There's an abstract interface to the execution unit in the invoker: 
Start/Pause/Resume/Stop/Logs. You can select the implementation through a 
configuration deployment (SPI).

There was some work on using the interface I alluded to for unikernels. I'd 
imagine the interface it can be adapted for working with a process, 
microkernel, ...

I'm suggesting it's a drop in replacement but at face value I don't see that 
it's necessary to be too invasive. The openwhisk core is really about 
starting/pausing/resuming/stopping an execution unit (which happens to be a 
container today).

I think containers are too coarse grained an execution unit for functions and 
expect technology to change in the future. But when/how long it will take... 
we'll see. I'm curious to see how your work unfolds with OpenWhisk and we're 
happy to help.

-r


Reply via email to