[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[buckminster-dev] Re: A different case of componentes that come into existence during a build
|
Comments inline...
"Thomas Hallgren" <thomas@xxxxxxx> skrev i meddelandet
news:el3scr$d4o$1@xxxxxxxxxxxxxxxxx...
> Some components may, in their initial state, be improper to bind as an
> artifact in a workspace. They may however contain meta-data with actions
> that creates such artifacts (a good example of this is the
> org.eclipse.swt). The question is, how do we trigger such an action?
>
> Let's look at the mechanisms that we already have:
>
> * The dependency 'obtainedFrom'
> This takes care of the case when components are created by actions of
> other components. I think that what I'm after is different. Here we have a
> component that actually do exist but that, in its current from, is
> unsuitable for a workspace bind. It can be solved using 'obtainedFrom' but
> then all referring components must know that the original component is
> insufficient. Either that, or an intermediate component must be created
> (and stored in order to be found).
>
> * The predefined 'prebind' action
> A prebind action is suitable for a component that is incomplete, i.e. some
> assembly needs to be performed that modifies or adds to the existing
> component. At present, the actual product of such an action has not been
> of interest. The thing to bind has still been the component itself. What
> I'm after here is the ability to redefine what it is that is bound.
>
> I think the best solution to this is to add to the 'prebind' semantics and
> say that if the prebind action produces a artifact that is named
> 'bind.entrypoint', then that artifact will be bound instead of the
> component itself.
>
> Alternatively, we say that any action can produce the 'bind.entrypoint'
> and that the binder simply requests that artifact. If it is found, the
> prebind step is skipped since it's assumed that the 'bind.entrypoint'
> takes care of whatever needs to be done.
>
This second proposal looks more flexible. In the first you say that "a
'bind.entrypoint' pre-bind would be bound instead of the component itself"
What if there are several? Does it ever make sense to bind the component as
well?