I looked at this some more and I think we can make a change in core
to support loading of custom component types. This will allow us to
get rid of having to use encapsulation for component types. Also, the
async invoker should move into an extension class in core. Finally, I
think ObjectFactory can replace EasyInstanceFactory. Given this, the
classes that remain are:
- EasyComponent
-EasyComponentBuilder
-EasyImplementation
-EasyImplementationBuilder
- EasyInvoker
Assuming we make the above mentioned change in core, most of the
above code contains "template" code that would have to be integrated
with container-specific code (e.g. handling of references). Given
that, would it be better to just document these code snippets in the
extension documentation as they are generally three-line statements?
I may be missing some extra functionality so please let me know.
Jim
On Oct 9, 2006, at 11:47 AM, Jim Marino wrote:
>
> On Oct 9, 2006, at 3:42 AM, ant elder wrote:
>
>> On 10/7/06, Jim Marino <[EMAIL PROTECTED]> wrote:
>>>
>>>
>>> On Oct 7, 2006, at 10:42 AM, Jim Marino wrote:
>>>
>>> >
>>> > On Oct 7, 2006, at 7:22 AM, ant elder wrote:
>>> >
>>> >> This is all working quite well now so i'd like to move it
from my
>>> >> sandbox to
>>> >> be with the other containers. BSF 2.4 has just come out and
the
>>> >> jar is
>>> >> available from a proper maven repo and the script container
>>> >> supports all the
>>> >> SCA things like references, properties and async, also the
>>> start of a
>>> >> website page describing it which I'll move to the site once
its a
>>> >> bit more
>>> >> done:
>>> >> https://svn.apache.org/repos/asf/incubator/tuscany/sandbox/
ant/
>>> >> container.script/doc/sca-java-container-script.xml
>>> >>
>>> >> https://svn.apache.org/repos/asf/incubator/tuscany/sandbox/
ant/
>>> >> container.script/
>>> >> https://svn.apache.org/repos/asf/incubator/tuscany/sandbox/
ant/
>>> >> container.easy/
>>> >>
>>> > I'm fine with this as long as the name of "container.easy"
can be
>>> > changed to something that denotes it has to do with scripting,
>>> > something like "container.bsf".
>>> >
>>> After looking at the code more instead of having something
separate,
>>> why wouldn't we look to see if we can merge the "easy container"
>>> into
>>> the extension API? I'd like to get a clearer direction on this
>>> before
>>> we move things around.
>>>
>>> Specifically, I have a few questions related to this:
>>>
>>> 1. Is this container just for scripting? It appears not to be
>>> tied to
>>> scripting
>>> 2. What value does this container provide over the extension API?
>>> Does it automate certain coding tasks only relevant to a
subset of
>>> containers or all containers? Could we just merge such automation
>>> with AtomicComponentExtension
>>> 3. There appears to be a bit of code duplication, some of
which may
>>> be a vestige from the Groovy container which needs to be
refactored.
>>> For example, AsyncInvoker. In a merge, maybe we could
eliminate the
>>> need for this?
>>>
>>> Jim
>>
>>
>> Way back I was moaning about the complexity of the SPI and it was
>> suggested
>> having a separate extension project for a simplified SPI for
>> extensions with
>> simpler requirements.
> Could you outline where you think core is too complex for "simple
> requirements"? I'd like to get an extension into core. What I
> specifically want to avoid is creating a parallel extension
mechanism.
>> I can't find a link, maybe the 1st sandbox phone call
>> or an old IRC chat? Thats where this came from. Its not quite
>> finished yet,
>> there's some parts that could be simplified further. I'd also like
>> to do the
>> same thing for bindings but haven't got to that yet. This is not
>> necessarily
>> tied to only scripting containers but thats all we've tried it
>> with so far,
>> and as Venkat suggests there likely is a bit more work required to
>> make it
>> more generally useful. There probably are some parts that could be
>> moved to
>> existing SPI classes, but there are also parts that may be a bit
>> inflexible
>> to be made part of the general extension SPI. As you point out the
>> async bit
>> does seem pretty isolated so that probably could be easily moved
>> out. Given
>> we're trying to get an M2 release out real soon I'm not sure about
>> messing
>> with the existing SPI classes now. How about for now moving the
>> obvious bits
>> like async out but keeping the rest in say a separate
>> container.helperproject or in a separate SPI package like
>> org.apache.tuscany.spi.extension.container?
>>
> What parts are you suggesting to move up? I definitely do not want
> to create another SPI package. Perhaps you could list the parts of
> the classes you would move into a helper library as well as the
> areas they are trying to simplify? This way we could decide whether
> the core spi can be simplified directly? To start with, I assume
> the following would not be included:
>
> - AsyncTargetInvoker
> - AsyncMonitor
> - EasyInstanceFactory since that can be done using an ObjectFactory
>
> Some specific questions I have are:
>
> - How are script scopes handled? I'm assuming we want to have the
> runtime manage statefull scripts, as we get that for free.
>
> - I also noticed the scope is set by default to Module. The default
> SCA Java is stateless. I agree module scope may be a better default
> but do you think we should be consistent with other SCA language
> specs here?
>
> - EasyComponentType encapsulates another ComponentType. I would
> have thought there would be an inheritance relationship. Was this
> because we need a specialization of ComponentType to be created by
> the generic side-file loader? If so, I think we should fix that in
> core.
>
> - More generally on component types, I haven't been following the
> PHP spec work but my understanding based on proposals from the
> people working on it to the assembly group is that the trend is to
> move away from having to author side-files and more towards code-
> level metadata and defaults. Would we want to emphasize that? Maybe
> you could ping Graham Charters who has been working on these
issues?
>
> - Do scripts need to be defined by the Java idl or could I use WSDL
> or JSON or something else (assuming the proper extension)?
>
> - What does EasyInstanceFactory.getResponseClasses(List<Class>
> services) do?
>
> - How are references handled? Can they be injected onto fields in
> prototype-based languages?
>
> I think the best way to figure out what would go into core versus
> an extension library is to get a list of classes you propose moving
> into core versus into the library. Does that work for you?
>
> Jim
>
>> ...ant
>>
>> ...ant
>
>
>
---------------------------------------------------------------------
> 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]