You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@abdera.apache.org by David Primmer <da...@gmail.com> on 2008/05/23 20:59:26 UTC

route implementation problem/discussion in shindig

https://issues.apache.org/jira/browse/SHINDIG-268
Cassie Doll and I are going back and forth trying to figure out a
cleaner way to use dependency injection with the DefaultProvider and
the RouteManager. I'd like to ask your opinion on these issues and see
if there isn't a way we can design Abdera to make it more flexible.
svn head of shiding has a system that does not have the
useGuiceForRoutes.patch applied and that's what we're debating.

thanks

davep

Re: route implementation problem/discussion in shindig

Posted by James M Snell <ja...@gmail.com>.

David Primmer wrote:
> I'll try to point out the biggies issues for Abdera since the issue is
> getting 'muddy'.
> 
> We extend DefaultProvider with our provider. It uses a RouteManager,
> that is setup within the code of our provider. After setting up about
> 10 routes, I took a look at the code and it smelled. So I tried to
> move some of the route managment and setup out of the provider class
> and into an enum that defined the basic arguments to .addRoute(name,
> pattern, type,collectionAdapter)
> 

With you so far...

> At the same time, there was a move toward dependency injection, we'd
> like to take a lot of this initialization code completely out of our
> provider as I mentioned in the jira issue. The provider has a
> setTargetResolver method that would allow us to inject a RouteManager
> that has been setup with targets and CollectionAdapters, however, you
> need to have the adapters initialized in order to call addRoute and
> wire up the route to adapter connection. Adapters get initialized in
> our provider so it's appears to be a chicken-n-egg thing. However,
> maybe I'm just not able to see how it's done with our DI system,
> Guice.
> 

Adapters are not tied to the Provider.  You should be able to init them 
independently of the Provider, then add some kind of addAdapter method 
to your provider or rely on the routes to pass those in.

> So now, as a work around to the fact that the only way to use
> RouteManager seems to be via addRoute in the provider, we have
> externalized the route2ca map in our own map and the routes map in our
> enum and on and on it seems until we've re-written the routemanager.
> 
> In addition to that, with Cassie's new changes, we've perpetuated this
> system seem to need a more functionality that allows us to have
> 'default' routes that are in essence 'hardcoded' into our server, and
> another system to allow people to extend our default routes with
> optional routes. This is where I feel like we need to stop with the
> workarounds.
> 
> Shouldn't we just be able to subclass RouteManager, implement some
> hardcoded default routes and a route2ca map and inject on
> setTargetResolver or is the order of invocation going to get us?
> 

Yes, that's all you *should* have to do.  If there are specific 
limitations in the current code that make that impossible, submit a 
patch and we'll get it fixed.

- James

> davep
> 
> On Tue, May 27, 2008 at 3:36 PM, David Primmer <da...@gmail.com> wrote:
>> it's a long discussion thread with 3 patches attached that affect
>> multiple files. I think jira was down when you tried. It was down for
>> me.
>>
>> It's kinda hard to summarize. AND I wanted you to personally weigh in
>> an influence the shindig devs -- something that I have not been able
>> to do.
>>
>> Let me know if it's still a problem. Our jira should be open to all.
>>
>> davep
>>
>> On Tue, May 27, 2008 at 2:32 PM, James M Snell <ja...@gmail.com> wrote:
>>> Hey Dave, for some reason I'm not able to pull up that jira issue.  Can you
>>> provide a bit more context?
>>>
>>> - James
>>>
>>> David Primmer wrote:
>>>> https://issues.apache.org/jira/browse/SHINDIG-268
>>>> Cassie Doll and I are going back and forth trying to figure out a
>>>> cleaner way to use dependency injection with the DefaultProvider and
>>>> the RouteManager. I'd like to ask your opinion on these issues and see
>>>> if there isn't a way we can design Abdera to make it more flexible.
>>>> svn head of shiding has a system that does not have the
>>>> useGuiceForRoutes.patch applied and that's what we're debating.
>>>>
>>>> thanks
>>>>
>>>> davep
>>>>
> 

Re: route implementation problem/discussion in shindig

Posted by David Primmer <da...@gmail.com>.
I'll try to point out the biggies issues for Abdera since the issue is
getting 'muddy'.

We extend DefaultProvider with our provider. It uses a RouteManager,
that is setup within the code of our provider. After setting up about
10 routes, I took a look at the code and it smelled. So I tried to
move some of the route managment and setup out of the provider class
and into an enum that defined the basic arguments to .addRoute(name,
pattern, type,collectionAdapter)

At the same time, there was a move toward dependency injection, we'd
like to take a lot of this initialization code completely out of our
provider as I mentioned in the jira issue. The provider has a
setTargetResolver method that would allow us to inject a RouteManager
that has been setup with targets and CollectionAdapters, however, you
need to have the adapters initialized in order to call addRoute and
wire up the route to adapter connection. Adapters get initialized in
our provider so it's appears to be a chicken-n-egg thing. However,
maybe I'm just not able to see how it's done with our DI system,
Guice.

So now, as a work around to the fact that the only way to use
RouteManager seems to be via addRoute in the provider, we have
externalized the route2ca map in our own map and the routes map in our
enum and on and on it seems until we've re-written the routemanager.

In addition to that, with Cassie's new changes, we've perpetuated this
system seem to need a more functionality that allows us to have
'default' routes that are in essence 'hardcoded' into our server, and
another system to allow people to extend our default routes with
optional routes. This is where I feel like we need to stop with the
workarounds.

Shouldn't we just be able to subclass RouteManager, implement some
hardcoded default routes and a route2ca map and inject on
setTargetResolver or is the order of invocation going to get us?

davep

On Tue, May 27, 2008 at 3:36 PM, David Primmer <da...@gmail.com> wrote:
> it's a long discussion thread with 3 patches attached that affect
> multiple files. I think jira was down when you tried. It was down for
> me.
>
> It's kinda hard to summarize. AND I wanted you to personally weigh in
> an influence the shindig devs -- something that I have not been able
> to do.
>
> Let me know if it's still a problem. Our jira should be open to all.
>
> davep
>
> On Tue, May 27, 2008 at 2:32 PM, James M Snell <ja...@gmail.com> wrote:
>> Hey Dave, for some reason I'm not able to pull up that jira issue.  Can you
>> provide a bit more context?
>>
>> - James
>>
>> David Primmer wrote:
>>>
>>> https://issues.apache.org/jira/browse/SHINDIG-268
>>> Cassie Doll and I are going back and forth trying to figure out a
>>> cleaner way to use dependency injection with the DefaultProvider and
>>> the RouteManager. I'd like to ask your opinion on these issues and see
>>> if there isn't a way we can design Abdera to make it more flexible.
>>> svn head of shiding has a system that does not have the
>>> useGuiceForRoutes.patch applied and that's what we're debating.
>>>
>>> thanks
>>>
>>> davep
>>>
>>
>

Re: route implementation problem/discussion in shindig

Posted by David Primmer <da...@gmail.com>.
it's a long discussion thread with 3 patches attached that affect
multiple files. I think jira was down when you tried. It was down for
me.

It's kinda hard to summarize. AND I wanted you to personally weigh in
an influence the shindig devs -- something that I have not been able
to do.

Let me know if it's still a problem. Our jira should be open to all.

davep

On Tue, May 27, 2008 at 2:32 PM, James M Snell <ja...@gmail.com> wrote:
> Hey Dave, for some reason I'm not able to pull up that jira issue.  Can you
> provide a bit more context?
>
> - James
>
> David Primmer wrote:
>>
>> https://issues.apache.org/jira/browse/SHINDIG-268
>> Cassie Doll and I are going back and forth trying to figure out a
>> cleaner way to use dependency injection with the DefaultProvider and
>> the RouteManager. I'd like to ask your opinion on these issues and see
>> if there isn't a way we can design Abdera to make it more flexible.
>> svn head of shiding has a system that does not have the
>> useGuiceForRoutes.patch applied and that's what we're debating.
>>
>> thanks
>>
>> davep
>>
>

Re: route implementation problem/discussion in shindig

Posted by James M Snell <ja...@gmail.com>.
Hey Dave, for some reason I'm not able to pull up that jira issue.  Can 
you provide a bit more context?

- James

David Primmer wrote:
> https://issues.apache.org/jira/browse/SHINDIG-268
> Cassie Doll and I are going back and forth trying to figure out a
> cleaner way to use dependency injection with the DefaultProvider and
> the RouteManager. I'd like to ask your opinion on these issues and see
> if there isn't a way we can design Abdera to make it more flexible.
> svn head of shiding has a system that does not have the
> useGuiceForRoutes.patch applied and that's what we're debating.
> 
> thanks
> 
> davep
>