One more change to the original IEP. The "Dependency resolving and
class loading" section [1] proposes to throw an instance of
ClassNotFoundException for cases where a deployment unit is not found
or can't be used. The same exception should be thrown in cases where a
class loader is not able to load a required class. The problem here is
existing non-Java clients which should be able to distinguish a
regular standard Java exception from Ignite specific exception and
provide to a user a descriptive error message with an error code. Also
a compute job/task could throw a task specific or an unexpected
exception. It also should be taken into account and a separate public
exception should be added for this purpose.

Given this I propose to add two public exceptions:

- DeploymentUnitUnavailableException - have to be thrown if a required
deployment unit is not found (actually it is not deployed) or if a
required deployment unit is obsolete and can't be used in a code
execution.
- ComputeExecutionException - a CompletableFuture instance returned
from the Compute API method has to be completed with an instance of
this exception in case of any other error raised during code
execution.

Corresponding changes have been made to the IEP.

1. 
https://cwiki.apache.org/confluence/display/IGNITE/IEP-103%3A+Code+Deployment#IEP103:CodeDeployment-Dependencyresolvingandclassloading

On Tue, May 23, 2023 at 8:19 PM Andrey Gura <ag...@apache.org> wrote:
>
> Hi, Igniters!
>
> Please take a look at the proposal for Code Deployment functionality
> in Apache Ignite 3 [1].
>
> Thanks for any feedback!
>
> 1. 
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-103%3A+Code+Deployment

Reply via email to