You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@etch.apache.org by "scott comer (JIRA)" <ji...@apache.org> on 2009/02/06 18:29:59 UTC

[jira] Created: (ETCH-59) Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters

Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters
-------------------------------------------------------------------------------------------------------

                 Key: ETCH-59
                 URL: https://issues.apache.org/jira/browse/ETCH-59
             Project: Etch
          Issue Type: Improvement
          Components: csharp-binding, java-binding
    Affects Versions: 1.0.1, 1.0.0, 1.0.2
            Reporter: scott comer
            Assignee: scott comer
            Priority: Minor
             Fix For: 1.1


when a service creates a listener, using BlahHelper.newListener(), the listener stack is built top down for a bit and then bottom up and glued
together. this is done in such a way that creating a listener filter is inhibited. this is needed for the name server's etch:  listener scheme.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Re: [jira] Created: (ETCH-59) Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters

Posted by scott comer <sc...@cisco.com>.
agreed.

James Dixson wrote:
> I have no objections, but I think as part of the change we should try to
> document the internal steps for constructing transports.
>
> Changes like this impede the rate at which we integrate other languages,
> e.g. Python. Mostly because I have to re-learn the flow and decide how
> impactful the change is to the binding implementation.
>
> --
> James
>
>
>
> On 2/9/09 10:35 AM, "Scott Comer (sccomer)" <sc...@cisco.com> wrote:
>
>   
>> anyone object to this going into etch release 1.1? i've attached a patch
>> for java and comment describing the issue a bit more fully.
>>
>> it is mainly an issue of who does plumbing and when. this makes the
>> listener stack construction process more like the
>> transport stack construction. there is little risk but some code changes
>> would be needed to existing listeners as the
>> top level object changed from Transport<ServerFactory> to just
>> ServerFactory (as that became a Transport itself).
>>
>> scott out
>>
>> scott comer (JIRA) wrote:
>>     
>>> Listener stack is build 1/2 upside down and strange inhibiting name service
>>> and other transport filters
>>> -----------------------------------------------------------------------------
>>> --------------------------
>>>
>>>                  Key: ETCH-59
>>>                  URL: https://issues.apache.org/jira/browse/ETCH-59
>>>              Project: Etch
>>>           Issue Type: Improvement
>>>           Components: csharp-binding, java-binding
>>>     Affects Versions: 1.0.1, 1.0.0, 1.0.2
>>>             Reporter: scott comer
>>>             Assignee: scott comer
>>>             Priority: Minor
>>>              Fix For: 1.1
>>>
>>>
>>> when a service creates a listener, using BlahHelper.newListener(), the
>>> listener stack is built top down for a bit and then bottom up and glued
>>> together. this is done in such a way that creating a listener filter is
>>> inhibited. this is needed for the name server's etch:  listener scheme.
>>>
>>>   
>>>       
>
>   

Re: [jira] Created: (ETCH-59) Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters

Posted by James Dixson <ja...@cisco.com>.
I have no objections, but I think as part of the change we should try to
document the internal steps for constructing transports.

Changes like this impede the rate at which we integrate other languages,
e.g. Python. Mostly because I have to re-learn the flow and decide how
impactful the change is to the binding implementation.

--
James



On 2/9/09 10:35 AM, "Scott Comer (sccomer)" <sc...@cisco.com> wrote:

> anyone object to this going into etch release 1.1? i've attached a patch
> for java and comment describing the issue a bit more fully.
> 
> it is mainly an issue of who does plumbing and when. this makes the
> listener stack construction process more like the
> transport stack construction. there is little risk but some code changes
> would be needed to existing listeners as the
> top level object changed from Transport<ServerFactory> to just
> ServerFactory (as that became a Transport itself).
> 
> scott out
> 
> scott comer (JIRA) wrote:
>> Listener stack is build 1/2 upside down and strange inhibiting name service
>> and other transport filters
>> -----------------------------------------------------------------------------
>> --------------------------
>> 
>>                  Key: ETCH-59
>>                  URL: https://issues.apache.org/jira/browse/ETCH-59
>>              Project: Etch
>>           Issue Type: Improvement
>>           Components: csharp-binding, java-binding
>>     Affects Versions: 1.0.1, 1.0.0, 1.0.2
>>             Reporter: scott comer
>>             Assignee: scott comer
>>             Priority: Minor
>>              Fix For: 1.1
>> 
>> 
>> when a service creates a listener, using BlahHelper.newListener(), the
>> listener stack is built top down for a bit and then bottom up and glued
>> together. this is done in such a way that creating a listener filter is
>> inhibited. this is needed for the name server's etch:  listener scheme.
>> 
>>   
> 

-- 
James Dixson
Manager, Software Development
CUAE Engineering, Cisco Systems
(e) jadixson@cisco.com
(p) 512-336-3305
(m) 512-968-2116



Re: [jira] Created: (ETCH-59) Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters

Posted by scott comer <sc...@cisco.com>.
anyone object to this going into etch release 1.1? i've attached a patch 
for java and comment describing the issue a bit more fully.

it is mainly an issue of who does plumbing and when. this makes the 
listener stack construction process more like the
transport stack construction. there is little risk but some code changes 
would be needed to existing listeners as the
top level object changed from Transport<ServerFactory> to just 
ServerFactory (as that became a Transport itself).

scott out

scott comer (JIRA) wrote:
> Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters
> -------------------------------------------------------------------------------------------------------
>
>                  Key: ETCH-59
>                  URL: https://issues.apache.org/jira/browse/ETCH-59
>              Project: Etch
>           Issue Type: Improvement
>           Components: csharp-binding, java-binding
>     Affects Versions: 1.0.1, 1.0.0, 1.0.2
>             Reporter: scott comer
>             Assignee: scott comer
>             Priority: Minor
>              Fix For: 1.1
>
>
> when a service creates a listener, using BlahHelper.newListener(), the listener stack is built top down for a bit and then bottom up and glued
> together. this is done in such a way that creating a listener filter is inhibited. this is needed for the name server's etch:  listener scheme.
>
>   


[jira] Updated: (ETCH-59) Listener stack is built 1/2 upside down and strange inhibiting name service and other transport filters

Posted by "scott comer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ETCH-59?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

scott comer updated ETCH-59:
----------------------------

    Summary: Listener stack is built 1/2 upside down and strange inhibiting name service and other transport filters  (was: Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters)

> Listener stack is built 1/2 upside down and strange inhibiting name service and other transport filters
> -------------------------------------------------------------------------------------------------------
>
>                 Key: ETCH-59
>                 URL: https://issues.apache.org/jira/browse/ETCH-59
>             Project: Etch
>          Issue Type: Improvement
>          Components: csharp-binding, java-binding
>    Affects Versions: 1.0.0, 1.0.1, 1.0.2
>            Reporter: scott comer
>            Assignee: scott comer
>            Priority: Minor
>             Fix For: 1.1
>
>         Attachments: listener_structure_patch.txt
>
>
> when a service creates a listener, using BlahHelper.newListener(), the listener stack is built top down for a bit and then bottom up and glued
> together. this is done in such a way that creating a listener filter is inhibited. this is needed for the name server's etch:  listener scheme.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (ETCH-59) Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters

Posted by "scott comer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ETCH-59?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

scott comer updated ETCH-59:
----------------------------

    Attachment: java_listener_structure_patch.txt

fix for this issue in java-binding.

> Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters
> -------------------------------------------------------------------------------------------------------
>
>                 Key: ETCH-59
>                 URL: https://issues.apache.org/jira/browse/ETCH-59
>             Project: Etch
>          Issue Type: Improvement
>          Components: csharp-binding, java-binding
>    Affects Versions: 1.0.0, 1.0.1, 1.0.2
>            Reporter: scott comer
>            Assignee: scott comer
>            Priority: Minor
>             Fix For: 1.1
>
>         Attachments: java_listener_structure_patch.txt
>
>
> when a service creates a listener, using BlahHelper.newListener(), the listener stack is built top down for a bit and then bottom up and glued
> together. this is done in such a way that creating a listener filter is inhibited. this is needed for the name server's etch:  listener scheme.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Re: [jira] Updated: (ETCH-59) Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters

Posted by "scott comer (sccomer)" <sc...@cisco.com>.
since there are no other comments, i will apply the patch for both java 
and csharp and commit. this
will break existing MainBlahListener programs (and any other programs 
which call BlahHelper.newListener().
you will need to recompile all etch files within your project (for java 
and csharp bindings), then manually fix any
remaining problems. where you now have:

    Transport<ServerFactory> listener = ...

you will need to change it to:

    ServerFactory listener = ....

scott out

scott comer (JIRA) wrote:
>      [ https://issues.apache.org/jira/browse/ETCH-59?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
>
> scott comer updated ETCH-59:
> ----------------------------
>
>     Attachment: listener_structure_patch.txt
>
> this patch includes a fix for the generated helper file resolving some issues between local and global references to uri and resources, and also a toString() method so that listeners print correctly.
>
> also included is the csharp version of the patch.
>
>   
>> Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters
>> -------------------------------------------------------------------------------------------------------
>>
>>                 Key: ETCH-59
>>                 URL: https://issues.apache.org/jira/browse/ETCH-59
>>             Project: Etch
>>          Issue Type: Improvement
>>          Components: csharp-binding, java-binding
>>    Affects Versions: 1.0.0, 1.0.1, 1.0.2
>>            Reporter: scott comer
>>            Assignee: scott comer
>>            Priority: Minor
>>             Fix For: 1.1
>>
>>         Attachments: listener_structure_patch.txt
>>
>>
>> when a service creates a listener, using BlahHelper.newListener(), the listener stack is built top down for a bit and then bottom up and glued
>> together. this is done in such a way that creating a listener filter is inhibited. this is needed for the name server's etch:  listener scheme.
>>     
>
>   

[jira] Updated: (ETCH-59) Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters

Posted by "scott comer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ETCH-59?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

scott comer updated ETCH-59:
----------------------------

    Attachment: listener_structure_patch.txt

this patch includes a fix for the generated helper file resolving some issues between local and global references to uri and resources, and also a toString() method so that listeners print correctly.

also included is the csharp version of the patch.

> Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters
> -------------------------------------------------------------------------------------------------------
>
>                 Key: ETCH-59
>                 URL: https://issues.apache.org/jira/browse/ETCH-59
>             Project: Etch
>          Issue Type: Improvement
>          Components: csharp-binding, java-binding
>    Affects Versions: 1.0.0, 1.0.1, 1.0.2
>            Reporter: scott comer
>            Assignee: scott comer
>            Priority: Minor
>             Fix For: 1.1
>
>         Attachments: listener_structure_patch.txt
>
>
> when a service creates a listener, using BlahHelper.newListener(), the listener stack is built top down for a bit and then bottom up and glued
> together. this is done in such a way that creating a listener filter is inhibited. this is needed for the name server's etch:  listener scheme.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (ETCH-59) Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters

Posted by "scott comer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ETCH-59?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

scott comer resolved ETCH-59.
-----------------------------

    Resolution: Fixed

> Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters
> -------------------------------------------------------------------------------------------------------
>
>                 Key: ETCH-59
>                 URL: https://issues.apache.org/jira/browse/ETCH-59
>             Project: Etch
>          Issue Type: Improvement
>          Components: csharp-binding, java-binding
>    Affects Versions: 1.0.0, 1.0.1, 1.0.2
>            Reporter: scott comer
>            Assignee: scott comer
>            Priority: Minor
>             Fix For: 1.1
>
>         Attachments: listener_structure_patch.txt
>
>
> when a service creates a listener, using BlahHelper.newListener(), the listener stack is built top down for a bit and then bottom up and glued
> together. this is done in such a way that creating a listener filter is inhibited. this is needed for the name server's etch:  listener scheme.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (ETCH-59) Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters

Posted by "scott comer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ETCH-59?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

scott comer updated ETCH-59:
----------------------------

    Attachment:     (was: java_listener_structure_patch.txt)

> Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters
> -------------------------------------------------------------------------------------------------------
>
>                 Key: ETCH-59
>                 URL: https://issues.apache.org/jira/browse/ETCH-59
>             Project: Etch
>          Issue Type: Improvement
>          Components: csharp-binding, java-binding
>    Affects Versions: 1.0.0, 1.0.1, 1.0.2
>            Reporter: scott comer
>            Assignee: scott comer
>            Priority: Minor
>             Fix For: 1.1
>
>
> when a service creates a listener, using BlahHelper.newListener(), the listener stack is built top down for a bit and then bottom up and glued
> together. this is done in such a way that creating a listener filter is inhibited. this is needed for the name server's etch:  listener scheme.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (ETCH-59) Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters

Posted by "scott comer (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ETCH-59?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12671910#action_12671910 ] 

scott comer commented on ETCH-59:
---------------------------------

constructing a listener:

(using TcpTransportFactory as an example)

MainBlahListener implements BlahHelper.BlahServerFactory

	newBlahServer( RemoteBlahClient client ) method returns new
		ImplBlahServer( client );

MainBlahListener.main:

	Transport<ServerFactory> listener = BlahHelper.newListener( uri, null,
		new MainBlahListener() );
	listener.transportControl( Transport.START_AND_WAIT_UP, 4000 );

BlahHelper.newListener (uri, resources, implFactory):

	return TransportFactory.getListener( uri, resources, new subclass of
		DefaultServerFactory( implFactory ) )
	(the DefaultServerFactory is all about responding to newServer method to
	build the transport stack for a new connection)

TransportFactory.getListener( uri, resources, factory ):

	TransportFactory f = getTransportFactory( u.getScheme() );
	return f.newListener( uri, resources, factory );

TcpTransportFactory.newListener( uri, resources, factory ):

	Transport<SessionListener<Socket>> l = new TcpListener( u, resources );
	MySessionListener b = new MySessionListener( l, uri, resources );
	b.setSession( factory );
	return b;

Here is the resulting stack of objects:

(implFactory)
(subclass of DefaultServerFactory)
(MySessionListener)
(TcpListener)

and remember, listener as returned by BlahHelper.newListener is MySessionListener.

to recap:

first we create implFactory
then we create our subclass of DefaultServerFactory
then we ask for a listener stack, passing in our subclass of DefaultServerFactory
return listener stack, leaving default server factory out of the loop.

this means the code which constructs the listener stack has to do the final
plumbing.

here is the better order, which is more like how the transport stack is constructed:

first we create implFactory
then we ask for a listener stack
then we create our subclass of DefaultServerFactory, passing in both the listener
and the implFactory.
return our subclass of DefaultServerFactory

> Listener stack is build 1/2 upside down and strange inhibiting name service and other transport filters
> -------------------------------------------------------------------------------------------------------
>
>                 Key: ETCH-59
>                 URL: https://issues.apache.org/jira/browse/ETCH-59
>             Project: Etch
>          Issue Type: Improvement
>          Components: csharp-binding, java-binding
>    Affects Versions: 1.0.0, 1.0.1, 1.0.2
>            Reporter: scott comer
>            Assignee: scott comer
>            Priority: Minor
>             Fix For: 1.1
>
>         Attachments: java_listener_structure_patch.txt
>
>
> when a service creates a listener, using BlahHelper.newListener(), the listener stack is built top down for a bit and then bottom up and glued
> together. this is done in such a way that creating a listener filter is inhibited. this is needed for the name server's etch:  listener scheme.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.