You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Jeremy Boynes (JIRA)" <ji...@apache.org> on 2006/03/04 01:36:39 UTC

[jira] Created: (TUSCANY-63) Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them

Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them
----------------------------------------------------------------------------------------------

         Key: TUSCANY-63
         URL: http://issues.apache.org/jira/browse/TUSCANY-63
     Project: Tuscany
        Type: Bug
  Components: Java SCA Core  
    Reporter: Jeremy Boynes


In order to get the Tomcat integration code to create servlets for web-services bound entry points it needed to know implementation details of the binding. This will not allow integrators to freely embed Tuscany in different environments or binding providers to contribute new bindings without knowing something about those environments.

I would suggest that we define an SPI implemented by environment integrators that will allow entry point implementations to request creation of transport endpoints. So, taking the example of Axis2 and Tomcat, the Axis2 binding would request a transport binding from the environment and which would be activated when the EP started.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Commented: (TUSCANY-63) Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them

Posted by "ant elder (JIRA)" <tu...@ws.apache.org>.
    [ http://issues.apache.org/jira/browse/TUSCANY-63?page=comments#action_12378234 ] 

ant elder commented on TUSCANY-63:
----------------------------------

"working" seems a little generous given that it requires the binding know the webapp name which isn't available anywhere. 

> Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them
> ----------------------------------------------------------------------------------------------
>
>          Key: TUSCANY-63
>          URL: http://issues.apache.org/jira/browse/TUSCANY-63
>      Project: Tuscany
>         Type: Bug

>   Components: Java SCA Core
>     Versions: M1
>     Reporter: Jeremy Boynes
>     Assignee: ant elder
>     Priority: Blocker
>      Fix For: M1

>
> In order to get the Tomcat integration code to create servlets for web-services bound entry points it needed to know implementation details of the binding. This will not allow integrators to freely embed Tuscany in different environments or binding providers to contribute new bindings without knowing something about those environments.
> I would suggest that we define an SPI implemented by environment integrators that will allow entry point implementations to request creation of transport endpoints. So, taking the example of Axis2 and Tomcat, the Axis2 binding would request a transport binding from the environment and which would be activated when the EP started.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Closed: (TUSCANY-63) Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them

Posted by "ant elder (JIRA)" <tu...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/TUSCANY-63?page=all ]
     
ant elder closed TUSCANY-63:
----------------------------


> Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them
> ----------------------------------------------------------------------------------------------
>
>          Key: TUSCANY-63
>          URL: http://issues.apache.org/jira/browse/TUSCANY-63
>      Project: Tuscany
>         Type: Bug

>   Components: Java SCA Core
>     Versions: M1
>     Reporter: Jeremy Boynes
>     Assignee: ant elder
>     Priority: Blocker
>      Fix For: M1

>
> In order to get the Tomcat integration code to create servlets for web-services bound entry points it needed to know implementation details of the binding. This will not allow integrators to freely embed Tuscany in different environments or binding providers to contribute new bindings without knowing something about those environments.
> I would suggest that we define an SPI implemented by environment integrators that will allow entry point implementations to request creation of transport endpoints. So, taking the example of Axis2 and Tomcat, the Axis2 binding would request a transport binding from the environment and which would be activated when the EP started.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Updated: (TUSCANY-63) Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them

Posted by "Jean-Sebastien Delfino (JIRA)" <tu...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/TUSCANY-63?page=all ]

Jean-Sebastien Delfino updated TUSCANY-63:
------------------------------------------

    Priority: Blocker  (was: Major)

>From today's IRC discussion, until this is sorted out the related work in the Axis binding is blocked.

> Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them
> ----------------------------------------------------------------------------------------------
>
>          Key: TUSCANY-63
>          URL: http://issues.apache.org/jira/browse/TUSCANY-63
>      Project: Tuscany
>         Type: Bug

>   Components: Java SCA Core
>     Versions: M1
>     Reporter: Jeremy Boynes
>     Priority: Blocker
>      Fix For: M1

>
> In order to get the Tomcat integration code to create servlets for web-services bound entry points it needed to know implementation details of the binding. This will not allow integrators to freely embed Tuscany in different environments or binding providers to contribute new bindings without knowing something about those environments.
> I would suggest that we define an SPI implemented by environment integrators that will allow entry point implementations to request creation of transport endpoints. So, taking the example of Axis2 and Tomcat, the Axis2 binding would request a transport binding from the environment and which would be activated when the EP started.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Assigned: (TUSCANY-63) Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them

Posted by "Jean-Sebastien Delfino (JIRA)" <tu...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/TUSCANY-63?page=all ]

Jean-Sebastien Delfino reassigned TUSCANY-63:
---------------------------------------------

    Assign To: Jeremy Boynes

Assigning to Jeremy since Ant mentioned he needed to work with Jeremy on this (Ant owns the related TUSCANY-65). 

> Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them
> ----------------------------------------------------------------------------------------------
>
>          Key: TUSCANY-63
>          URL: http://issues.apache.org/jira/browse/TUSCANY-63
>      Project: Tuscany
>         Type: Bug

>   Components: Java SCA Core
>     Versions: M1
>     Reporter: Jeremy Boynes
>     Assignee: Jeremy Boynes
>     Priority: Blocker
>      Fix For: M1

>
> In order to get the Tomcat integration code to create servlets for web-services bound entry points it needed to know implementation details of the binding. This will not allow integrators to freely embed Tuscany in different environments or binding providers to contribute new bindings without knowing something about those environments.
> I would suggest that we define an SPI implemented by environment integrators that will allow entry point implementations to request creation of transport endpoints. So, taking the example of Axis2 and Tomcat, the Axis2 binding would request a transport binding from the environment and which would be activated when the EP started.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Resolved: (TUSCANY-63) Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them

Posted by "ant elder (JIRA)" <tu...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/TUSCANY-63?page=all ]
     
ant elder resolved TUSCANY-63:
------------------------------

    Resolution: Fixed
     Assign To: ant elder  (was: Jeremy Boynes)

We have the Axis2 and JSONRPC binding working with this new SPI now so I'm going to close this as done.

> Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them
> ----------------------------------------------------------------------------------------------
>
>          Key: TUSCANY-63
>          URL: http://issues.apache.org/jira/browse/TUSCANY-63
>      Project: Tuscany
>         Type: Bug

>   Components: Java SCA Core
>     Versions: M1
>     Reporter: Jeremy Boynes
>     Assignee: ant elder
>     Priority: Blocker
>      Fix For: M1

>
> In order to get the Tomcat integration code to create servlets for web-services bound entry points it needed to know implementation details of the binding. This will not allow integrators to freely embed Tuscany in different environments or binding providers to contribute new bindings without knowing something about those environments.
> I would suggest that we define an SPI implemented by environment integrators that will allow entry point implementations to request creation of transport endpoints. So, taking the example of Axis2 and Tomcat, the Axis2 binding would request a transport binding from the environment and which would be activated when the EP started.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Assigned: (TUSCANY-63) Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them

Posted by "Jeremy Boynes (JIRA)" <tu...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/TUSCANY-63?page=all ]

Jeremy Boynes reassigned TUSCANY-63:
------------------------------------

    Assign To: ant elder  (was: Jeremy Boynes)

Assigning to Ant as the Tomcat side is working

> Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them
> ----------------------------------------------------------------------------------------------
>
>          Key: TUSCANY-63
>          URL: http://issues.apache.org/jira/browse/TUSCANY-63
>      Project: Tuscany
>         Type: Bug

>   Components: Java SCA Core
>     Versions: M1
>     Reporter: Jeremy Boynes
>     Assignee: ant elder
>     Priority: Blocker
>      Fix For: M1

>
> In order to get the Tomcat integration code to create servlets for web-services bound entry points it needed to know implementation details of the binding. This will not allow integrators to freely embed Tuscany in different environments or binding providers to contribute new bindings without knowing something about those environments.
> I would suggest that we define an SPI implemented by environment integrators that will allow entry point implementations to request creation of transport endpoints. So, taking the example of Axis2 and Tomcat, the Axis2 binding would request a transport binding from the environment and which would be activated when the EP started.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Commented: (TUSCANY-63) Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them

Posted by "Jim Marino (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/TUSCANY-63?page=comments#action_12368825 ] 

Jim Marino commented on TUSCANY-63:
-----------------------------------

Can we have the builder set this up, perhaps through the builder registry? I was also thinking it may be useful if the Axis engine was somehow a component and we have it register as a transport in the runtime.  There would be some kind of eventing mechanism where the builder passes a reference to the entry point context which when created sends a request to that reference for a transport address, etc., to be created.  Normally, I would like the builder to do all of this, but we have to be careful that the transport is not notified prior to the entry point context being created.

> Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them
> ----------------------------------------------------------------------------------------------
>
>          Key: TUSCANY-63
>          URL: http://issues.apache.org/jira/browse/TUSCANY-63
>      Project: Tuscany
>         Type: Bug
>   Components: Java SCA Core
>     Reporter: Jeremy Boynes

>
> In order to get the Tomcat integration code to create servlets for web-services bound entry points it needed to know implementation details of the binding. This will not allow integrators to freely embed Tuscany in different environments or binding providers to contribute new bindings without knowing something about those environments.
> I would suggest that we define an SPI implemented by environment integrators that will allow entry point implementations to request creation of transport endpoints. So, taking the example of Axis2 and Tomcat, the Axis2 binding would request a transport binding from the environment and which would be activated when the EP started.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Re: Lifecycle and eventing, was: [jira] Commented: (TUSCANY-63) ...

Posted by Jim Marino <jm...@myroma.net>.
On Mar 5, 2006, at 8:09 AM, Jeremy Boynes wrote:

> Jim Marino (JIRA) wrote:
>
>> [
>> http://issues.apache.org/jira/browse/TUSCANY-63? 
>> page=comments#action_12368832
>> ]
>>
>> Jim Marino commented on TUSCANY-63:
>> -----------------------------------
>>
>> We may have to think about a general eventing mechanism in the
>> runtime (there is the basic EventContext stuff)...We could perhaps
>> have the builder prepare everything and hand the configuration to the
>> registry which can then send a notification to the transport, in this
>> case Axis.  Axis won 't "turn on" the entry point until it is
>> notified during a MODULE_START event.
>>
>>
>>
>
> I agree we need to reexamine the eventing and lifecycle model in
> general. Having external code able to fire general events is something
> that has seemed a little squirrely to me with the potential it has
> allowing that code to trigger inappropriate behaviour.
>
> For example, to start a module context the code calls fireEvent  
> passing
> in the MODULE_START parameter. Instead, would it be possible to have
> start/stop methods on the context itself to control its lifecycle and
> then have their implementation send a MODULE_START event as a
> notification to other components that the context had started.
>

Yes but the one issue that prevented me from doing this initially was  
the ability to have custom scope types and events. We could have some  
"precanned" methods since fireEvent(EventContext.REQUEST_START,null);  
is ugly looking but I think we need a general mechanism that allows  
things such as transport bindings to notify the runtime of various  
events. In addition to scopes, I can see such events as:

"binding for entry point/external service is changed"
"introduce this policy on these types of entry points"

Also, right now there are two event notification mechanism, the  
fireEvent associated with AggregateContext and LifecycleEventListener  
for being notified of new component instance creation. Perhaps these  
should be reconciled? I'm not sure.


> With explicit control over lifecycle we can make an AggregrateContext
> responsible for starting its children. Specifically, it would
> recursively start the child contexts that represent the EPs,  
> Components
> and ESs that its Module contains.

>
> Envision that during the build phase, the builder set up enough
> configuration information in the EP context and its binding so that  
> that
> context knows how to start and register itself. For example, the  
> builder
> would have configured the Axis2 binding with all of its Axis
> configuration information and a reference to the Axis engine via the
> SPI. When the EP starts it in turn starts the inbound binding which  
> will
> then use the SPI implemented by the Axis engine to register and  
> activate
> itself.
>
This seems reasonable.

> --
> Jeremy
>


Lifecycle and eventing, was: [jira] Commented: (TUSCANY-63) ...

Posted by Jeremy Boynes <jb...@apache.org>.
Jim Marino (JIRA) wrote:
> [
> http://issues.apache.org/jira/browse/TUSCANY-63?page=comments#action_12368832
> ]
> 
> Jim Marino commented on TUSCANY-63: 
> -----------------------------------
> 
> We may have to think about a general eventing mechanism in the
> runtime (there is the basic EventContext stuff)...We could perhaps
> have the builder prepare everything and hand the configuration to the
> registry which can then send a notification to the transport, in this
> case Axis.  Axis won 't "turn on" the entry point until it is
> notified during a MODULE_START event.
> 
> 

I agree we need to reexamine the eventing and lifecycle model in
general. Having external code able to fire general events is something
that has seemed a little squirrely to me with the potential it has
allowing that code to trigger inappropriate behaviour.

For example, to start a module context the code calls fireEvent passing
in the MODULE_START parameter. Instead, would it be possible to have
start/stop methods on the context itself to control its lifecycle and
then have their implementation send a MODULE_START event as a
notification to other components that the context had started.

With explicit control over lifecycle we can make an AggregrateContext
responsible for starting its children. Specifically, it would
recursively start the child contexts that represent the EPs, Components
and ESs that its Module contains.

Envision that during the build phase, the builder set up enough
configuration information in the EP context and its binding so that that
context knows how to start and register itself. For example, the builder
would have configured the Axis2 binding with all of its Axis
configuration information and a reference to the Axis engine via the
SPI. When the EP starts it in turn starts the inbound binding which will
then use the SPI implemented by the Axis engine to register and activate
itself.

--
Jeremy

[jira] Commented: (TUSCANY-63) Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them

Posted by "Jim Marino (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/TUSCANY-63?page=comments#action_12368832 ] 

Jim Marino commented on TUSCANY-63:
-----------------------------------

We may have to think about a general eventing mechanism in the runtime (there is the basic EventContext stuff)...We could perhaps have the builder prepare everything and hand the configuration to the registry which can then send a notification to the transport, in this case Axis.  Axis won 't "turn on" the entry point until it is notified during a MODULE_START event.

> Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them
> ----------------------------------------------------------------------------------------------
>
>          Key: TUSCANY-63
>          URL: http://issues.apache.org/jira/browse/TUSCANY-63
>      Project: Tuscany
>         Type: Bug
>   Components: Java SCA Core
>     Reporter: Jeremy Boynes

>
> In order to get the Tomcat integration code to create servlets for web-services bound entry points it needed to know implementation details of the binding. This will not allow integrators to freely embed Tuscany in different environments or binding providers to contribute new bindings without knowing something about those environments.
> I would suggest that we define an SPI implemented by environment integrators that will allow entry point implementations to request creation of transport endpoints. So, taking the example of Axis2 and Tomcat, the Axis2 binding would request a transport binding from the environment and which would be activated when the EP started.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Assigned: (TUSCANY-63) Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them

Posted by "ant elder (JIRA)" <tu...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/TUSCANY-63?page=all ]

ant elder reassigned TUSCANY-63:
--------------------------------

    Assign To: Jeremy Boynes  (was: ant elder)

Also, I'm now working on moving the Axis2 binding over so if the JSONRPC binding shows I'm going about this the wrong way knowing about it sooner rather that latter would be good :)

> Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them
> ----------------------------------------------------------------------------------------------
>
>          Key: TUSCANY-63
>          URL: http://issues.apache.org/jira/browse/TUSCANY-63
>      Project: Tuscany
>         Type: Bug

>   Components: Java SCA Core
>     Versions: M1
>     Reporter: Jeremy Boynes
>     Assignee: Jeremy Boynes
>     Priority: Blocker
>      Fix For: M1

>
> In order to get the Tomcat integration code to create servlets for web-services bound entry points it needed to know implementation details of the binding. This will not allow integrators to freely embed Tuscany in different environments or binding providers to contribute new bindings without knowing something about those environments.
> I would suggest that we define an SPI implemented by environment integrators that will allow entry point implementations to request creation of transport endpoints. So, taking the example of Axis2 and Tomcat, the Axis2 binding would request a transport binding from the environment and which would be activated when the EP started.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Commented: (TUSCANY-63) Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them

Posted by "ant elder (JIRA)" <tu...@ws.apache.org>.
    [ http://issues.apache.org/jira/browse/TUSCANY-63?page=comments#action_12378293 ] 

ant elder commented on TUSCANY-63:
----------------------------------

I need a way to get at the Servlet instance registered for a mapping, I've had a go at this but couldn't find how to get it, could you provide an implementation for this? I've added the method but it just returns null. Also if you could have a look at how I've got the JSONRPC binding to work using this and see if its what you expect. Right now it works but without being able to get the Servlet registered for a mapping means there can only be a single entryPoint in the web app.


> Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them
> ----------------------------------------------------------------------------------------------
>
>          Key: TUSCANY-63
>          URL: http://issues.apache.org/jira/browse/TUSCANY-63
>      Project: Tuscany
>         Type: Bug

>   Components: Java SCA Core
>     Versions: M1
>     Reporter: Jeremy Boynes
>     Assignee: ant elder
>     Priority: Blocker
>      Fix For: M1

>
> In order to get the Tomcat integration code to create servlets for web-services bound entry points it needed to know implementation details of the binding. This will not allow integrators to freely embed Tuscany in different environments or binding providers to contribute new bindings without knowing something about those environments.
> I would suggest that we define an SPI implemented by environment integrators that will allow entry point implementations to request creation of transport endpoints. So, taking the example of Axis2 and Tomcat, the Axis2 binding would request a transport binding from the environment and which would be activated when the EP started.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Updated: (TUSCANY-63) Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them

Posted by "Jean-Sebastien Delfino (JIRA)" <tu...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/TUSCANY-63?page=all ]

Jean-Sebastien Delfino updated TUSCANY-63:
------------------------------------------

    Fix Version: 0.91
        Version: 0.91

> Need an SPI for co-ordination between EntryPoints and the infrastructure that will invoke them
> ----------------------------------------------------------------------------------------------
>
>          Key: TUSCANY-63
>          URL: http://issues.apache.org/jira/browse/TUSCANY-63
>      Project: Tuscany
>         Type: Bug

>   Components: Java SCA Core
>     Versions: 0.91
>     Reporter: Jeremy Boynes
>      Fix For: 0.91

>
> In order to get the Tomcat integration code to create servlets for web-services bound entry points it needed to know implementation details of the binding. This will not allow integrators to freely embed Tuscany in different environments or binding providers to contribute new bindings without knowing something about those environments.
> I would suggest that we define an SPI implemented by environment integrators that will allow entry point implementations to request creation of transport endpoints. So, taking the example of Axis2 and Tomcat, the Axis2 binding would request a transport binding from the environment and which would be activated when the EP started.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira