Hi,

In the databinding framework, we need to attach some context such as the databinding-specific typing system to a composite. For example, in SDO databinding, we use "import.sdo" to populate SDO types into HelperContext for the given composite and the HelperContext will be used later on for data transformation. What's the best way to achieve this? This is required to get databinding-sdo back to work in trunk again.

There are some options coming into my mind:

1) Maintain a map keyed by the URI of the composite some where in the databding-sdo code? (I guess we need to register a "RuntimeEventListener" to listen on "ComponentEvent" so that we can respond to the composite lifecycle.)

2) Get the ScopeContainer for the composite, and register a SystemSingletonAtomicComponent which wraps the composite-scoped HelperContext?

Any suggestion will be appreciated.

Thanks,
Raymond

----- Original Message ----- From: "Raymond Feng" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Wednesday, February 07, 2007 10:47 AM
Subject: Re: DataBindingInterceptor and PassByValueInterceptor question


Yes, I agree. And that should be part of the efforts to support the load/resolve/build for SCDL extensibility elements so that they can be handled in a pluggable way.

Thanks,
Raymond

----- Original Message ----- From: "Jim Marino" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Wednesday, February 07, 2007 10:37 AM
Subject: Re: DataBindingInterceptor and PassByValueInterceptor question



On Feb 7, 2007, at 10:21 AM, Raymond Feng wrote:

Hi, Jim.

Let me explain the DataBindingInterceptor part.

In this case, I pass the CompositeComponent as a metadata in the transformation context so that the transformers can access the extensions (SCAObject.getExtensions) of the CompositeComponent. The extensions contain some information (such as the TypeHelper for the composite) built from SCDL extensibility elements such as <import.sdo>. This is a workaround to support the load/build for SCDL extensibility elements.


Thanks Raymond for the response...

This seems problematic, particularly since we are passing CompositeComponent just to use extensibility elements in an untyped way. Wouldn't it be better to do this through some type of typed context (e.g. for extensibility elements, which themselves may need to be untyped) for the post processor? I generally prefer APIs to be explicit about what they are passing around.

Jim

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to