Then the solution is to generalize the code, not to overburden it.  If
handling different URI forces dupe code then there was a very bad decision
made very long ago.

I bet it is threaded crap.



On Mon, Mar 31, 2014 at 9:00 AM, Oren Hurvitz <or...@kitely.com> wrote:

> As this is an assets-service request, it belongs in the assets-service
> handlers. They already handle many different requests: data, metadata,
> data+metadata, store, update.
>
> Creating a new handler would be easier for me at this moment, but perhaps
> not best for OpenSim in the longer term. First, because this request is
> related to the other asset requests, it makes sense to handle them
> together. Second, adding a new handler for every new feature isn't good
> because it creates a lot of duplicate code. Third, being able to determine
> a server's capabilities is useful.
>
> There are many places in the codebase where new features were added using
> copy-paste-and-modify. This makes it harder to add new features, and
> especially hard to refactor major systems because so many places need to be
> changed in parallel. I would like to get away from that.
>
> Oren
>
>
>
>
> On Mon, Mar 31, 2014 at 3:51 PM, Melanie-2 [via opensim-dev] <[hidden
> email] <http://user/SendEmail.jtp?type=node&node=7579102&i=0>> wrote:
>
>> Hi Oren,
>>
>> the correct way is to create an additional post handler that is reachable
>> at a different URL, e,g, /AssetQuery/
>>
>> Servers that don't implement it would return 404. Don't try to shoehorn
>> this functionality into the existing post handler.
>>
>> Melanie
>>
>> On 31 Mar 2014, at 13:55, Oren Hurvitz <[hidden 
>> email]<http://user/SendEmail.jtp?type=node&node=7579101&i=0>>
>> wrote:
>>
>> I have implemented this method. I found that the Assets Service already
>> had a
>> method to check for assets' existence, so I just had to extend it to
>> check
>> multiple asset ID's at once, and make it available remotely. But now I'm
>> not
>> sure what to do about backwards compatibility.
>>
>> I'm sending the request using POST, because sending a lot of data is
>> better
>> done using POST than GET. But as it turns out, AssetServerPostHandler
>> doesn't handle unknown requests well. First, it assumes that all requests
>> will contain an AssetBase, but this request doesn't. Second, its
>> try/catch
>> clause doesn't catch the exception that is generated, because it's an
>> InvalidOperationException and not an XmlException (which is what's
>> currently
>> caught). The unfortunate result is that the server doesn't send back
>> *any*
>> reply, which means that the caller must wait for the full timeout (100
>> seconds!) before giving up. [BTW, I'm going to investigate this further
>> because it may explain the 100-second timeouts users occasionally
>> experience.]
>>
>> I've already fixed this problem in the current patch (not yet submitted),
>> so
>> that in the future AssetServerPostHandler will return an error code
>> immediately for unknown requests (HTTP 400). But that won't help when
>> connecting to old grids.
>>
>> I see two ways to fix this:
>>
>> 1. Send the request using GET instead of POST. AssetServerGetHandler
>> handles
>> unknown requests a little better than POST: it tries to find the
>> parameter
>> as an Asset ID, but if not found then it just returns HTTP 404
>> immediately.
>>
>> 2. Add a way to query the server for its capabilities, to find out if it
>> supports this request.
>>
>> I prefer approach #2 because it can be used in the future for many other
>> new
>> features. How about adding a method to IGatekeeperService, something like
>> this:
>>
>> Dictionary<string,string> GetServerCapabilities();
>>
>> In this example, the capability will be: "SupportsAssetsExist"="true"
>>
>>
>>
>>
>> --
>> View this message in context:
>> http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579100.html
>>
>> Sent from the opensim-dev mailing list archive at Nabble.com.
>> _______________________________________________
>> Opensim-dev mailing list
>> [hidden email] <http://user/SendEmail.jtp?type=node&node=7579101&i=1>
>> https://lists.berlios.de/mailman/listinfo/opensim-dev
>>
>>
>> _______________________________________________
>> Opensim-dev mailing list
>> [hidden email] <http://user/SendEmail.jtp?type=node&node=7579101&i=2>
>> https://lists.berlios.de/mailman/listinfo/opensim-dev
>>
>>
>> ------------------------------
>>  If you reply to this email, your message will be added to the
>> discussion below:
>>
>> http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579101.html
>>  To unsubscribe from Optimize pushing assets to other grids, click here.
>> NAML<http://opensim-dev.2196679.n2.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>
>
>
>
> --
> Oren Hurvitz
> VP R&D
> Kitely Ltd.
>
> Email: [hidden 
> email]<http://user/SendEmail.jtp?type=node&node=7579102&i=1>[hidden
> email] <http://user/SendEmail.jtp?type=node&node=7579102&i=2>
>
> ------------------------------
> View this message in context: Re: Optimize pushing assets to other 
> grids<http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579102.html>
> Sent from the opensim-dev mailing list 
> archive<http://opensim-dev.2196679.n2.nabble.com/>at Nabble.com.
>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev@lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
>



-- 
No essence.  No permanence.  No perfection.  Only action.
_______________________________________________
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

Reply via email to