It's not a question of the namespace handler being able to cope. I think
I can certainly accommodate multiple passes.
I was just considering the larger implications. I'm a little concerned
about the performance of parsing everything twice - but I suppose that
isn't a huge problem (at least until we decide we need to parse a few
more times for a few more reasons).
I think we do need to clearly communicate and document the requirements
this change places on namespace handlers in general. Prior to this the
assumption was that namespace handlers were being invoked when parsing
the blueprint xml by the the blueprint container (after the bundles were
started). It also wasn't necessary to handle multiple invocations
because the bundle would only be parsed once. With this change the
namespace handler is being invoked in a different context (before the
bundle is started) and multiple times.
Joe
On 9/27/10 2:39 PM, Alasdair Nottingham wrote:
No, it is so the resolver can resolve dangling service references, installing
the bundles would be bad because it would violate the contract of the Aries
application installer which allows you to resolve without installing the
application. Also when we are installing in an isolated way we need to know the
resolution prior to installation, so we would need to install, uninstall then
reinstall.
Your namespace handler must cope, what is the problem?
Alasdair
On 27 Sep 2010, at 19:34, Joe Bohn<[email protected]> wrote:
Can you be more specific on the need for the EBA installer to parse the
blueprint xml? Is it to validate that services exported by the EBA are
actually defined in some bundle?
If that is the case, then would it be possible to install the bundle(s) first
and validate exported services against those registered by the various bundles?
Joe
On 9/27/10 2:16 PM, Alasdair Nottingham wrote:
Hi,
I think the simple answer is probably yes. I think it is called once to know
how to resolve the application, and the second time because we have installed
the framework.
Alasdair
On 27 Sep 2010, at 19:02, Joe Bohn<[email protected]> wrote:
When processing an application (EBA) we parse all of the blueprint.xml
(including custom namespaces) as part of the application processing for all
bundles within the EBA. The net result is that we do all of this parsing twice
because we also must parse and processes the information in the
BlueprintContainer.
Why is it necessary to parse the blueprint.xml during EBA installation in the
application module?
I stumbled on this because I was making some modifications to a custom
namespace handler and noticed that it was being invoked twice for the same
elements. It seems that this is not desirable. Should all namespace handlers
be coded in such a way that they can be invoked multiple times for the exact
same elements?
--
Joe
--
Joe