On Tue, Jul 24, 2012 at 5:28 AM, sasinda rukshan
<[email protected]> wrote:
> Hi, All, Thomas
>
> Just to notify a design decision. Since you said to notify on major
> decisions,
>
> There is a little issue in the earlier projects RestConnector.  module
> "xwiki-android-rest"
> I' ll take a sample method where you can check.
> public Page getPage(String pageName)    in PageResources.
> If the page is not found in the server the underlying HttpConnector will
> get a "404 not found".(there are other situations as well ex: unauthorized
> etc...)
> Currently these are not identified in the low level rest connector.
> So I deprecated the "class Requests" (because I don't wont to break
> application layer code in the earlier project) . Made a new class that
> throws the exceptions up.
>
> Also some methods as  "public String addPage(Page page)" return the
> response codes up to the Application layer . This does not seem a good idea
> for me. The knowledge of response codes should be handled in there itself.
> An exception should be thrown for unsuccessful operations. Currently
>  String "error" is passed up for IOExceptions.  I re-factored back to throw
> RestConnectionException for IO errors. I will introduce a new exception
> RestException , to be
> thrown at these exceptional situations.
>
> What is you opinion on introducing exceptions?

I completely agree with you.

> The current exception hierarchy is as follows.
>
> Exceptions at RestConnector (low level fine grained XWiki Restful API)
> RestConnectionException : for IO errors
> RestException : to capture and throw as a exception,    404, 401, 405.....
>
> Exceptions at the Restful Access Layer.
> RestAPIUsageException : runtime exception. For things that cannot be
> handled.
> RALException  : RestException  are wrapped. Well in a more friendly manner.
>                             ex: add object to a Document in a document
> update operation.
>                                       Client App is ignorantly adding a
> object to a page that is not yet even created. So a 405 is returned. This
> is thrown as a RestException from the Connector layer(low level)
>                                       At the RAL we see the 405 and
> identify that this was because page was not created earlier. We wrap the
> RestException in RALException and give the more friendlier message.( Also
> note that the client
>                                       can handle this exceptional situation
> by asking the RAL to do a create document)
>
>
> Can you give your opinion on this?

Sounds good to me, will think more about the details and will tell you
if I have some things I think about.

>
> Regards
> Sasinda.
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to