users@grizzly.java.net

Re: (Getting the ProtocolChain instance) Re: Servlet blocking??

From: Jeanfrancois Arcand <Jeanfrancois.Arcand_at_Sun.COM>
Date: Wed, 27 May 2009 11:31:22 -0400

Salut,

César Fernando Henriques wrote:
> Hi,
>
> On Wed, May 27, 2009 at 12:06 PM, Jeanfrancois Arcand
> <Jeanfrancois.Arcand_at_sun.com> wrote:
>> Salut,
>>
>> César Fernando Henriques wrote:
>>> Hi,
>>>
>>> On Tue, May 26, 2009 at 10:34 PM, Jeanfrancois Arcand
>>> <Jeanfrancois.Arcand_at_sun.com> wrote:
>>>> Salut,
>>>>
>>>> César Fernando Henriques wrote:
>>>>> Hi,
>>>>>
>>>>> On Tue, May 26, 2009 at 9:56 PM, Jeanfrancois Arcand
>>>>> <Jeanfrancois.Arcand_at_sun.com> wrote:
>>>>>> Salut,
>>>>>>
>>>>>> César Fernando Henriques wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> On Mon, May 25, 2009 at 11:08 PM, Jeanfrancois Arcand
>>>>>>> <Jeanfrancois.Arcand_at_sun.com> wrote:
>>>>>>>> Salut,
>>>>>>>>
>>>>>>>> sorry for the delay. I've just added a test case in Grizzly:
>>>>>>>>
>>>>>>>>
>>>>>>>> Mainly, to get the ProtocolChain, just do:
>>>>>>>>
>>>>>>>>> ProtocolChain pc =
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> gws.getSelectorThread().getController().getProtocolChainInstanceHandler().poll();
>>>>>>>> From there you can add your ProtocolFilter. I've filled issue:
>>>>>>>>
>>>>>>>> https://grizzly.dev.java.net/issues/show_bug.cgi?id=621
>>>>>>>>
>>>>>>>> and added
>>>>>>>>
>>>>>>>> SelectorThread.getProtocolChain() to make it easier/trivial.
>>>>>>>>
>>>>>>>> and this is fixed in 1.9.16-SNAPSHOT. We are planning to release
>>>>>>>> 1.9.16
>>>>>>>> this
>>>>>>>> week or early next week.
>>>>>>> A little doubt, this already fix the
>>>>>>> server.getSelectorThread().getController() returning null if I call
>>>>>>> getController before starting the server?
>>>>>> Yes you still need to start the GWS in order to be allowed to add your
>>>>>> ProtocolFilter. Is it causing an issue?
>>>>> No, it's ok, just that in my mind I was thinking in ProtocolFilter
>>>>> like any Adapter, is there something I'm missing? should not be easier
>>>>> to allow the user to setup the server configuration Filters/Adapters
>>>>> in any order?
>>>> So your proposal, if I understand you correctly, would consist of adding
>>>> to
>>>> the GWS class something like addProtocolFilter(ProtocolFilter, int
>>>> position), independent if the Server is started or not, right?
>>> Yes, I was thinking in something like that... I don't know if there
>>> are many use cases that make it worthwhile adding something like this.
>>>
>>> Remember that I'm thinking on ProtocolFilter in something similar to
>>> SimpleChannelHandler in netty so I can add a custom protocol or a
>>> transformation layer on top of HTTP. Maybe I'm totally wrong about
>>> this idea. (I'm still thinking)
>>>
>>> I need to look at the code to understand really how it works, becasue
>>> I don't see clear yet if it can be used in the way I'm thinking.
>>>
>>> What I want is to create a serie of ProtocolFilters for example to
>>> transform the content of http responses (pdf to html, doc to html,
>>> etc), to add Compression and Cryptography (other than ssl, at http
>>> content level) , etc.
>> I see. I suspect this API is more appropriate for content transformation
>> (but not SSL):
>>
>> https://grizzly.dev.java.net/nonav/apidocs/com/sun/grizzly/tcp/http11/OutputFilter.html
>>
>> As an example, you can take a look at the GZIP implementation:
>>
>> https://grizzly.dev.java.net/nonav/xref/com/sun/grizzly/tcp/http11/filters/GzipOutputFilter.html#72
>
> Thanks, I will take a look at the sources.
>
> Could you point me to some documentation, so I can start reading about
> the architecture of Grizzly? I'm mainly interested in the http module.

Unfortunately, we don't have such documentation available. I can try to
do some quick write up that explain how the http module works later
today if that can help. But one question before: Have you looked at the
http-servlet module? You can probably achieve all the above by writing
Filters, and add them to your ServletAdapter. There is a lot of
documentation available for Servlet, so it would make you ready much
faster IMO.


>
> I will need to write some code for the client side... do you think
> it's a difficult tasks to write an http async client?

This is not simple for sure. But you should take a look at the Jersey
Client (jersey.dev.java.net). Jersey is a big user of Grizzly and their
client works really really well with the http module.

  I have checked
> out the httpclient on the svn, I think it should be a good starting
> point.
>
> Best Regards.

Thanks!

-- Jeanfrancois


>
> Cesar.-
>
>>
>>> I have the basic idea on how this should work based on what I was
>>> doing with netty, but I don't think It will fit on GWS, maybe should I
>>> write my own GWS Server.
>>>
>>> I hope you can understand my point... sometimes it's hard for my to
>>> explain in english :-(. I'm from Argentina. I must improve my
>>> spanglish!!!
>> No this is quite clear...I'm from Quebec, so same frenchglish issue :-)
>>
>> A+
>>
>> -- Jeanfrancois
>>
>>> Thanks
>>>
>>> Cesar.-
>>>
>>>>> Is there any doc I can read to understand how it works?
>>>>>
>>>>> Thank you and sorry I'm taking lot of your time...
>>>> NOT at all. This is a very interesting discussion.
>>>>
>>>> Thanks!
>>>>
>>>> -- Jeanfrancois
>>>>
>>>>
>>>>> Cesar.-
>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> -- jeanfrancois
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>> Cesar.-
>>>>>>>
>>>>>>>> Thanks!
>>>>>>>>
>>>>>>>> -- Jeanfrancois
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> César Fernando Henriques wrote:
>>>>>>>>> yeap I found that issue, well I think I will try Grizzly for server
>>>>>>>>> side and netty from client side ;-)
>>>>>>>>>
>>>>>>>>> Thanks Jean,
>>>>>>>>>
>>>>>>>>> Best Regards
>>>>>>>>>
>>>>>>>>> Cesar.-
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, May 25, 2009 at 8:59 PM, Jeanfrancois Arcand
>>>>>>>>> <Jeanfrancois.Arcand_at_sun.com> wrote:
>>>>>>>>>> Salut,
>>>>>>>>>>
>>>>>>>>>> César Fernando Henriques wrote:
>>>>>>>>>>> Jean,
>>>>>>>>>>>
>>>>>>>>>>> Is there any async http client implementend with grizzly?
>>>>>>>>>> Not yet, unfortunately. We are working on it:
>>>>>>>>>>
>>>>>>>>>> https://grizzly.dev.java.net/issues/show_bug.cgi?id=265
>>>>>>>>>>
>>>>>>>>>> Thanks!
>>>>>>>>>>
>>>>>>>>>> -- Jeanfrancois
>>>>>>>>>>
>>>>>>>>>>> Thanks
>>>>>>>>>>>
>>>>>>>>>>> 2009/5/25 César Fernando Henriques <fuzzball_at_alttab.com.ar>:
>>>>>>>>>>>> Thanks, Jean, I'm still doing tests with both Grizzly and Netty.
>>>>>>>>>>>> To
>>>>>>>>>>>> be
>>>>>>>>>>>> honest I'm inclined to choose netty at this point, just for the
>>>>>>>>>>>> API
>>>>>>>>>>>> simplicity, but I really like Grizzly because it solve all my
>>>>>>>>>>>> reqs
>>>>>>>>>>>> with the CometEngine
>>>>>>>>>>>>
>>>>>>>>>>>> My problem is that I don't have a global vision of Grizzly, yet,
>>>>>>>>>>>> and
>>>>>>>>>>>> where it's going in terms of versions and features to be
>>>>>>>>>>>> supported.
>>>>>>>>>>>>
>>>>>>>>>>>> For example I'm seeing that GrizzlyWebServer in 2.0 doesn't have
>>>>>>>>>>>> access to TCPSelectorHandler, why? Is this beacuse 2.0 doesn't
>>>>>>>>>>>> support
>>>>>>>>>>>> comet yet? I don't think it's related to comet (maybe I'm wrong).
>>>>>>>>>>>> Should be nice to have the chance to add ProtocolFilter to GWS in
>>>>>>>>>>>> 2.0
>>>>>>>>>>>> release.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> If you think It will be easy to fix I can take a look at the
>>>>>>>>>>>> commet
>>>>>>>>>>>> enabled GWS code.
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks!
>>>>>>>>>>>>
>>>>>>>>>>>> Cesar.-
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, May 25, 2009 at 6:14 PM, Jeanfrancois Arcand
>>>>>>>>>>>> <Jeanfrancois.Arcand_at_sun.com> wrote:
>>>>>>>>>>>>> Salut,
>>>>>>>>>>>>>
>>>>>>>>>>>>> César Fernando Henriques wrote:
>>>>>>>>>>>>>> Thanks Jean,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I have tried accesing from different browsers and It works
>>>>>>>>>>>>>> perfectly
>>>>>>>>>>>>>> :-)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I will keep doing some test, and trying to work around the
>>>>>>>>>>>>>> issue
>>>>>>>>>>>>>> of
>>>>>>>>>>>>>> adding ProtocolFilter on GrizzlyWebServer, do you remember that
>>>>>>>>>>>>>> issue?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> TCPSelectorHandler tcpHandler = server.getSelectorThread()
>>>>>>>>>>>>>> .getSelectorHandler();
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> getSelectorHandler() return null. If I call getSelectorHandler
>>>>>>>>>>>>>> after
>>>>>>>>>>>>>> gws.start() it return a valid handler but I get a null at
>>>>>>>>>>>>>> tcpHandler.getProtocolChainInstanceHandler();
>>>>>>>>>>>>> Ok this should be easy to fix. Do you want me to take a look or
>>>>>>>>>>>>> you
>>>>>>>>>>>>> already
>>>>>>>>>>>>> moved to Netty :-) Anyway I will file an issue but if you don't
>>>>>>>>>>>>> need
>>>>>>>>>>>>> it
>>>>>>>>>>>>> today, I will work on 2.0 release :-)
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks!
>>>>>>>>>>>>>
>>>>>>>>>>>>> -- Jeanfrancois
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thanks!
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Best Regards,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Cesar.-
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Mon, May 25, 2009 at 11:58 AM, Jeanfrancois Arcand
>>>>>>>>>>>>>> <Jeanfrancois.Arcand_at_sun.com> wrote:
>>>>>>>>>>>>>>> Salut,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> César Fernando Henriques wrote:
>>>>>>>>>>>>>>>> Hi all, I have been doing some tests with the EchoServer and
>>>>>>>>>>>>>>>> it
>>>>>>>>>>>>>>>> seems
>>>>>>>>>>>>>>>> to be running ok, my problem is just with GrizzleWebServer,
>>>>>>>>>>>>>>>> I'm
>>>>>>>>>>>>>>>> really
>>>>>>>>>>>>>>>> newbie ... but I'm suspecting that I have some throuble with
>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>> AsyncWebFilter.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> It's just frustrating... :-(
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Any body has seen this erro before?
>>>>>>>>>>>>>>> I think you are running inside Eclipse and the browser doesn't
>>>>>>>>>>>>>>> not
>>>>>>>>>>>>>>> allow
>>>>>>>>>>>>>>> more than 2 connections to the same host. This is a well know
>>>>>>>>>>>>>>> issue
>>>>>>>>>>>>>>> when
>>>>>>>>>>>>>>> using comet, e.g if your browser opens more than two
>>>>>>>>>>>>>>> connections
>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>> server, all other connections will be blocked by the browser.
>>>>>>>>>>>>>>> This
>>>>>>>>>>>>>>> is
>>>>>>>>>>>>>>> not
>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>> Grizzly issue :-) Can you try outside Eclipse with 2 different
>>>>>>>>>>>>>>> browser
>>>>>>>>>>>>>>> (like
>>>>>>>>>>>>>>> I'm doing)?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Thanks!
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> -- Jeanfrancois
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thank you guys!
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Saludos
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Cesar.-
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> 2009/5/23 César Fernando Henriques <fuzzball_at_alttab.com.ar>:
>>>>>>>>>>>>>>>>> Jean,
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I have been doing some tests, but I'm still getting the same
>>>>>>>>>>>>>>>>> error
>>>>>>>>>>>>>>>>> (The servlet blocks after the first request). This is the
>>>>>>>>>>>>>>>>> output
>>>>>>>>>>>>>>>>> for
>>>>>>>>>>>>>>>>> the first request. If I close the browser ht servlet can
>>>>>>>>>>>>>>>>> serve
>>>>>>>>>>>>>>>>> another
>>>>>>>>>>>>>>>>> request.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> 23/05/2009 19:17:12 com.sun.grizzly.http.SelectorThread
>>>>>>>>>>>>>>>>> displayConfiguration
>>>>>>>>>>>>>>>>> INFO:
>>>>>>>>>>>>>>>>> Grizzly configuration for port 80
>>>>>>>>>>>>>>>>> Thread Pool: StatsThreadPool[name=http, priority=10,
>>>>>>>>>>>>>>>>> min-threads=5,
>>>>>>>>>>>>>>>>> max-threads=5, max-queue-size=4096,
>>>>>>>>>>>>>>>>> initial-byte-buffer-size=8192,
>>>>>>>>>>>>>>>>> byte-buffer-type=HEAP_VIEW, is-shutdown=false, port=80]
>>>>>>>>>>>>>>>>> ByteBuffer size: 8192
>>>>>>>>>>>>>>>>> maxHttpHeaderSize: 8192
>>>>>>>>>>>>>>>>> maxKeepAliveRequests: 256
>>>>>>>>>>>>>>>>> keepAliveTimeoutInSeconds: 30
>>>>>>>>>>>>>>>>> Static File Cache enabled: true
>>>>>>>>>>>>>>>>> Static resources directory:
>>>>>>>>>>>>>>>>> E:\Users\Cesar\Documentos\Proyectos\WebServer
>>>>>>>>>>>>>>>>> Adapter : com.sun.grizzly.tcp.http11.GrizzlyAdapterChain
>>>>>>>>>>>>>>>>> Asynchronous Request Processing enabled: true
>>>>>>>>>>>>>>>>> 23/05/2009 19:17:16 com.sun.grizzly.http.ProcessorTask
>>>>>>>>>>>>>>>>> parseRequest
>>>>>>>>>>>>>>>>> INFO: SocketChannel request
>>>>>>>>>>>>>>>>> linejava.nio.channels.SocketChannel[connected
>>>>>>>>>>>>>>>>> local=/127.0.0.1:80
>>>>>>>>>>>>>>>>> remote=/127.0.0.1:54798] is: R( /index.html)
>>>>>>>>>>>>>>>>> 23/05/2009 19:17:16 com.sun.grizzly.http.ProcessorTask
>>>>>>>>>>>>>>>>> parseRequest
>>>>>>>>>>>>>>>>> INFO: SocketChannel
>>>>>>>>>>>>>>>>> headersjava.nio.channels.SocketChannel[connected
>>>>>>>>>>>>>>>>> local=/127.0.0.1:80 remote=/127.0.0.1:54798] are: ===
>>>>>>>>>>>>>>>>> MimeHeaders
>>>>>>>>>>>>>>>>> ===
>>>>>>>>>>>>>>>>> host = localhost:80
>>>>>>>>>>>>>>>>> user-agent = Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES;
>>>>>>>>>>>>>>>>> rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
>>>>>>>>>>>>>>>>> accept =
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
>>>>>>>>>>>>>>>>> accept-language = es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
>>>>>>>>>>>>>>>>> accept-encoding = gzip,deflate
>>>>>>>>>>>>>>>>> accept-charset = ISO-8859-1,utf-8;q=0.7,*;q=0.7
>>>>>>>>>>>>>>>>> keep-alive = 300
>>>>>>>>>>>>>>>>> connection = keep-alive
>>>>>>>>>>>>>>>>> cache-control = max-age=0
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I'm running on Windows 7 64bits and JDK 1.6 U12
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> any help?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Fri, May 22, 2009 at 2:04 PM, Jeanfrancois Arcand
>>>>>>>>>>>>>>>>> <Jeanfrancois.Arcand_at_sun.com> wrote:
>>>>>>>>>>>>>>>>>> Salut,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> César Fernando Henriques wrote:
>>>>>>>>>>>>>>>>>>> Thanks you Jean, will be good if you have a little of free
>>>>>>>>>>>>>>>>>>> time
>>>>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>>> check my code but don't worry, I'm not hurry
>>>>>>>>>>>>>>>>>> (saw your post on Netty ;-))
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> For me your code works perfectly (I'm using
>>>>>>>>>>>>>>>>>> 1.9.16-SNAPSHOT)
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I did:
>>>>>>>>>>>>>>>>>>> jfarcand_at_jfarcand-desktop:/appserv80/grizzly/gws_comet$
>>>>>>>>>>>>>>>>>>> jdebug
>>>>>>>>>>>>>>>>>>> -Dcom.sun.grizzly.enableSnoop=true
>>>>>>>>>>>>>>>>>>> -Dcom.sun.grizzly.displayConfiguration=true -cp
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> /appserv80/grizzly/trunk/modules/bundles/comet/target/grizzly-comet-webserver-1.9.16-SNAPSHOT.jar:.
>>>>>>>>>>>>>>>>>>> ar.com.alttab.webserver.Test
>>>>>>>>>>>>>>>>>>> Listening for transport dt_socket at address: 9009
>>>>>>>>>>>>>>>>>>> 22-May-2009 12:56:24 PM
>>>>>>>>>>>>>>>>>>> com.sun.grizzly.http.SelectorThread
>>>>>>>>>>>>>>>>>>> displayConfiguration
>>>>>>>>>>>>>>>>>>> INFO: Grizzly configuration for port 8080
>>>>>>>>>>>>>>>>>>> Thread Pool: StatsThreadPool[name=http, priority=10,
>>>>>>>>>>>>>>>>>>> min-threads=5, max-threads=5, max-queue-size=4096,
>>>>>>>>>>>>>>>>>>> initial-byte-buffer-size=8192, byte-buffer-type=HEAP_VIEW,
>>>>>>>>>>>>>>>>>>> is-shutdown=false, port=8080]
>>>>>>>>>>>>>>>>>>> ByteBuffer size: 8192
>>>>>>>>>>>>>>>>>>> maxHttpHeaderSize: 8192
>>>>>>>>>>>>>>>>>>> maxKeepAliveRequests: 256
>>>>>>>>>>>>>>>>>>> keepAliveTimeoutInSeconds: 30
>>>>>>>>>>>>>>>>>>> Static File Cache enabled: true
>>>>>>>>>>>>>>>>>>> Static resources directory:
>>>>>>>>>>>>>>>>>>> /home/jfarcand/workspace/grizzly/gws_comet
>>>>>>>>>>>>>>>>>>> Adapter : com.sun.grizzly.tcp.http11.GrizzlyAdapterChain
>>>>>>>>>>>>>>>>>>> Asynchronous Request Processing enabled: true
>>>>>>>>>>>>>>>>>>> 22-May-2009 12:56:33 PM com.sun.grizzly.http.ProcessorTask
>>>>>>>>>>>>>>>>>>> parseRequest
>>>>>>>>>>>>>>>>>>> INFO: SocketChannel request
>>>>>>>>>>>>>>>>>>> linejava.nio.channels.SocketChannel[connected
>>>>>>>>>>>>>>>>>>> local=/127.0.0.1:8080 remote=/127.0.0.1:39679] is: R( /)
>>>>>>>>>>>>>>>>>>> 22-May-2009 12:56:33 PM com.sun.grizzly.http.ProcessorTask
>>>>>>>>>>>>>>>>>>> parseRequest
>>>>>>>>>>>>>>>>>>> INFO: SocketChannel
>>>>>>>>>>>>>>>>>>> headersjava.nio.channels.SocketChannel[connected
>>>>>>>>>>>>>>>>>>> local=/127.0.0.1:8080 remote=/127.0.0.1:39679] are: ===
>>>>>>>>>>>>>>>>>>> MimeHeaders
>>>>>>>>>>>>>>>>>>> ===
>>>>>>>>>>>>>>>>>>> user-agent = Wget/1.11.4
>>>>>>>>>>>>>>>>>>> accept = */*
>>>>>>>>>>>>>>>>>>> host = 127.0.0.1:8080
>>>>>>>>>>>>>>>>>>> connection = Keep-Alive
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Suspending :
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> com.sun.grizzly.http.servlet.HttpServletRequestImpl_at_1712651
>>>>>>>>>>>>>>>>>>> 22-May-2009 12:56:53 PM com.sun.grizzly.http.ProcessorTask
>>>>>>>>>>>>>>>>>>> parseRequest
>>>>>>>>>>>>>>>>>>> INFO: SocketChannel request
>>>>>>>>>>>>>>>>>>> linejava.nio.channels.SocketChannel[connected
>>>>>>>>>>>>>>>>>>> local=/127.0.0.1:8080 remote=/127.0.0.1:39680] is: R( /)
>>>>>>>>>>>>>>>>>>> 22-May-2009 12:56:53 PM com.sun.grizzly.http.ProcessorTask
>>>>>>>>>>>>>>>>>>> parseRequest
>>>>>>>>>>>>>>>>>>> INFO: SocketChannel
>>>>>>>>>>>>>>>>>>> headersjava.nio.channels.SocketChannel[connected
>>>>>>>>>>>>>>>>>>> local=/127.0.0.1:8080 remote=/127.0.0.1:39680] are: ===
>>>>>>>>>>>>>>>>>>> MimeHeaders
>>>>>>>>>>>>>>>>>>> ===
>>>>>>>>>>>>>>>>>>> user-agent = Wget/1.11.4
>>>>>>>>>>>>>>>>>>> accept = */*
>>>>>>>>>>>>>>>>>>> host = 127.0.0.1:8080
>>>>>>>>>>>>>>>>>>> connection = Keep-Alive
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Suspending :
>>>>>>>>>>>>>>>>>>> com.sun.grizzly.http.servlet.HttpServletRequestImpl_at_6397eb
>>>>>>>>>>>>>>>>>>> 22-May-2009 12:57:04 PM
>>>>>>>>>>>>>>>>>>> com.sun.grizzly.http.SocketChannelOutputBuffer
>>>>>>>>>>>>>>>>>>> flushChannel
>>>>>>>>>>>>>>>>>>> INFO: HTTP/1.1 200 OK
>>>>>>>>>>>>>>>>>>> server: grizzly/1.9.16
>>>>>>>>>>>>>>>>>>> Content-Length: 0
>>>>>>>>>>>>>>>>>>> Date: Fri, 22 May 2009 16:57:04 GMT
>>>>>>>>>>>>>>>>>>> Connection: Keep-Alive
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> 22-May-2009 12:57:23 PM
>>>>>>>>>>>>>>>>>>> com.sun.grizzly.http.SocketChannelOutputBuffer
>>>>>>>>>>>>>>>>>>> flushChannel
>>>>>>>>>>>>>>>>>>> INFO: HTTP/1.1 200 OK
>>>>>>>>>>>>>>>>>>> server: grizzly/1.9.16
>>>>>>>>>>>>>>>>>>> Content-Length: 0
>>>>>>>>>>>>>>>>>>> Date: Fri, 22 May 2009 16:57:23 GMT
>>>>>>>>>>>>>>>>>>> Connection: Keep-Alive
>>>>>>>>>>>>>>>>>> And added the following line in
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> CometResponseHandler handler = new
>>>>>>>>>>>>>>>>>>> CometResponseHandler();
>>>>>>>>>>>>>>>>>>> handler.attach(arg1);
>>>>>>>>>>>>>>>>>>> context.addCometHandler(handler);
>>>>>>>>>>>>>>>>>>> System.out.println("Suspending : " + arg0);
>>>>>>>>>>>>>>>>>> I do see the Suspended called all the time, and also the
>>>>>>>>>>>>>>>>>> push/notify.
>>>>>>>>>>>>>>>>>> Ho
>>>>>>>>>>>>>>>>>> can
>>>>>>>>>>>>>>>>>> I reproduce your use case?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Do you know if there are any plan to release Grizzly Comet
>>>>>>>>>>>>>>>>>>> Web
>>>>>>>>>>>>>>>>>>> Server
>>>>>>>>>>>>>>>>>>> for nio framework 2.0?
>>>>>>>>>>>>>>>>>> We are targetting June 2009. I will soon work on the Comet
>>>>>>>>>>>>>>>>>> implementation
>>>>>>>>>>>>>>>>>> (after J1).
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Last question, (already asked on the other thread), is
>>>>>>>>>>>>>>>>>>> there
>>>>>>>>>>>>>>>>>>> any
>>>>>>>>>>>>>>>>>>> way
>>>>>>>>>>>>>>>>>>> to add a ProtocolFilter to GrizzlyWebServer, I have been
>>>>>>>>>>>>>>>>>>> playing
>>>>>>>>>>>>>>>>>>> with
>>>>>>>>>>>>>>>>>>> netty and have the chance to add Custom Handlers to the
>>>>>>>>>>>>>>>>>>> channel,
>>>>>>>>>>>>>>>>>>> so I
>>>>>>>>>>>>>>>>>>> was thinking to add ProtocolHandler, CompressionHandler
>>>>>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>>>>>> CryptoHandler.
>>>>>>>>>>>>>>>>>> Yes, and I've answered:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> In Grizzly you will do something like:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> GrizzlyWebServer.getSelectorThread().getSelectorHandler().
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> getProtocolChain().poll().addFilter(2,yourCustomProtocolParser());
>>>>>>>>>>>>>>>>>>> Another good use of Filters in my case could be to
>>>>>>>>>>>>>>>>>>> transform
>>>>>>>>>>>>>>>>>>> documents, I'm going to access different content from
>>>>>>>>>>>>>>>>>>> moble
>>>>>>>>>>>>>>>>>>> phones
>>>>>>>>>>>>>>>>>>> so
>>>>>>>>>>>>>>>>>>> maybe a good service to add in the Daemon could be a
>>>>>>>>>>>>>>>>>>> DocumentTransformationFilter, that extract text/html from
>>>>>>>>>>>>>>>>>>> pdf,
>>>>>>>>>>>>>>>>>>> doc,
>>>>>>>>>>>>>>>>>>> docx (I already have this implemented in a DTS Service
>>>>>>>>>>>>>>>>>>> running
>>>>>>>>>>>>>>>>>>> standalone).
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> What do you think?
>>>>>>>>>>>>>>>>>> I think that could be pretty simple to do that inside a
>>>>>>>>>>>>>>>>>> GrizzlyAdapter
>>>>>>>>>>>>>>>>>> instead of a ProtocolFilter. Inside the grizzlyAdapter all
>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>> headers
>>>>>>>>>>>>>>>>>> will
>>>>>>>>>>>>>>>>>> be parsed for you, and you just have to manipulate the body
>>>>>>>>>>>>>>>>>> of
>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>> request.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Thanks!
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> -- Jeanfrancois
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Cesar.-
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On Thu, May 21, 2009 at 10:18 PM, Jeanfrancois Arcand
>>>>>>>>>>>>>>>>>>> <Jeanfrancois.Arcand_at_sun.com> wrote:
>>>>>>>>>>>>>>>>>>>> Salut,
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> I'm back (was releasing this little monster ->
>>>>>>>>>>>>>>>>>>>> http://is.gd/Cb5Y)
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> César Fernando Henriques wrote:
>>>>>>>>>>>>>>>>>>>>> Maybe I'm getting wrong... but is supposed that the
>>>>>>>>>>>>>>>>>>>>> request
>>>>>>>>>>>>>>>>>>>>> get
>>>>>>>>>>>>>>>>>>>>> suspened for different client's. In my case the servlet
>>>>>>>>>>>>>>>>>>>>> serve
>>>>>>>>>>>>>>>>>>>>> one
>>>>>>>>>>>>>>>>>>>>> client and suspend... that's ok, if I dispacth a comet
>>>>>>>>>>>>>>>>>>>>> event
>>>>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>> response is updated with the notify, but I I create
>>>>>>>>>>>>>>>>>>>>> another
>>>>>>>>>>>>>>>>>>>>> request
>>>>>>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>>>>> the servlet from another client the servlet doesn't
>>>>>>>>>>>>>>>>>>>>> respond
>>>>>>>>>>>>>>>>>>>>> until I
>>>>>>>>>>>>>>>>>>>>> close the previuos request (Close the browser).
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> I don't think that should be happening... but maybe I'm
>>>>>>>>>>>>>>>>>>>>> totally
>>>>>>>>>>>>>>>>>>>>> confused.
>>>>>>>>>>>>>>>>>>>> No you are correct. I suspect there is not enough
>>>>>>>>>>>>>>>>>>>> threads...but
>>>>>>>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>>>>>>> strange. I will play with the sample (THANKS) to see
>>>>>>>>>>>>>>>>>>>> what's
>>>>>>>>>>>>>>>>>>>> happening.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Apology for the delay.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> -- Jeanfrancois
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Thanks!
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> On Thu, May 21, 2009 at 6:01 PM, Jeanfrancois Arcand
>>>>>>>>>>>>>>>>>>>>> <Jeanfrancois.Arcand_at_sun.com> wrote:
>>>>>>>>>>>>>>>>>>>>>> Salut,
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> César Fernando Henriques wrote:
>>>>>>>>>>>>>>>>>>>>>>> Jean, Yes, the service method is invoked, and the
>>>>>>>>>>>>>>>>>>>>>>> event
>>>>>>>>>>>>>>>>>>>>>>> is
>>>>>>>>>>>>>>>>>>>>>>> dispatched
>>>>>>>>>>>>>>>>>>>>>>> on CometResponseHandler. My problem is that the
>>>>>>>>>>>>>>>>>>>>>>> Servlet
>>>>>>>>>>>>>>>>>>>>>>> running
>>>>>>>>>>>>>>>>>>>>>>> on
>>>>>>>>>>>>>>>>>>>>>>> GrizzlyWebServer is blocking and I just can serve one
>>>>>>>>>>>>>>>>>>>>>>> client
>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>> time.
>>>>>>>>>>>>>>>>>>>>>> OK but all request gets suspended and that's normal you
>>>>>>>>>>>>>>>>>>>>>> don't
>>>>>>>>>>>>>>>>>>>>>> get
>>>>>>>>>>>>>>>>>>>>>> any
>>>>>>>>>>>>>>>>>>>>>> response. What are you expecting?
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Thanks!
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> -- jeanfrancois
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> I have attached the code.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Thanks you!!!
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> On Thu, May 21, 2009 at 5:43 PM, Jeanfrancois Arcand
>>>>>>>>>>>>>>>>>>>>>>> <Jeanfrancois.Arcand_at_sun.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>> Salut,
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Survivant 00 wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> I never did comet stuff yet, but here a snippet that
>>>>>>>>>>>>>>>>>>>>>>>>> will
>>>>>>>>>>>>>>>>>>>>>>>>> enable
>>>>>>>>>>>>>>>>>>>>>>>>> comet.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> // comet
>>>>>>>>>>>>>>>>>>>>>>>>> if(cometEnabled){
>>>>>>>>>>>>>>>>>>>>>>>>> SelectorThread st = ws.getSelectorThread();
>>>>>>>>>>>>>>>>>>>>>>>>> AsyncHandler asyncHandler = new
>>>>>>>>>>>>>>>>>>>>>>>>> DefaultAsyncHandler();
>>>>>>>>>>>>>>>>>>>>>>>>> asyncHandler.addAsyncFilter(new
>>>>>>>>>>>>>>>>>>>>>>>>> CometAsyncFilter());
>>>>>>>>>>>>>>>>>>>>>>>>> st.setAsyncHandler(asyncHandler);
>>>>>>>>>>>>>>>>>>>>>>>>> st.setEnableAsyncExecution(true);
>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> No this not not needed.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Cesar, is the service method of your GrizzlyAdapter
>>>>>>>>>>>>>>>>>>>>>>>> invoked?
>>>>>>>>>>>>>>>>>>>>>>>> Can
>>>>>>>>>>>>>>>>>>>>>>>> you
>>>>>>>>>>>>>>>>>>>>>>>> send
>>>>>>>>>>>>>>>>>>>>>>>> me
>>>>>>>>>>>>>>>>>>>>>>>> the entire class so I can try?
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> -- Jeanfrancois
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> 2009/5/21 César Fernando Henriques
>>>>>>>>>>>>>>>>>>>>>>>>> <cesar_at_alttab.com.ar
>>>>>>>>>>>>>>>>>>>>>>>>> <mailto:cesar_at_alttab.com.ar>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Hi guys, I'm runnign the following code and
>>>>>>>>>>>>>>>>>>>>>>>>> something
>>>>>>>>>>>>>>>>>>>>>>>>> is
>>>>>>>>>>>>>>>>>>>>>>>>> wrong,
>>>>>>>>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>>>>>> servlet is blocking so I just can serve one client
>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>> time.
>>>>>>>>>>>>>>>>>>>>>>>>> Is
>>>>>>>>>>>>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>>>>>>>>>>>> supposed to work in that way?
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Sorry if this is a silly question.. I'm new to
>>>>>>>>>>>>>>>>>>>>>>>>> Grizzly.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> GrizzlyWebServer server = new GrizzlyWebServer(80);
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> server.addAsyncFilter(new CometAsyncFilter());
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> server.addGrizzlyAdapter(new ServletAdapter(new
>>>>>>>>>>>>>>>>>>>>>>>>> MyServlet()),
>>>>>>>>>>>>>>>>>>>>>>>>> new String[]{"/"});
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> server.addGrizzlyAdapter(new GrizzlyAdapter() {
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> @Override
>>>>>>>>>>>>>>>>>>>>>>>>> public void service(GrizzlyRequest arg0,
>>>>>>>>>>>>>>>>>>>>>>>>> GrizzlyResponse
>>>>>>>>>>>>>>>>>>>>>>>>> arg1) {
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> CometEngine cometEngine =
>>>>>>>>>>>>>>>>>>>>>>>>> CometEngine.getEngine();
>>>>>>>>>>>>>>>>>>>>>>>>> CometContext cometContext =
>>>>>>>>>>>>>>>>>>>>>>>>> cometEngine.getCometContext("caca");
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> try {
>>>>>>>>>>>>>>>>>>>>>>>>> cometContext.notify("Chatter test has
>>>>>>>>>>>>>>>>>>>>>>>>> joined.");
>>>>>>>>>>>>>>>>>>>>>>>>> } catch (IOException e) {
>>>>>>>>>>>>>>>>>>>>>>>>> // TODO Auto-generated catch block
>>>>>>>>>>>>>>>>>>>>>>>>> e.printStackTrace();
>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>> }, new String[] { "/test" });
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> try {
>>>>>>>>>>>>>>>>>>>>>>>>> server.start();
>>>>>>>>>>>>>>>>>>>>>>>>> } catch (IOException e) {
>>>>>>>>>>>>>>>>>>>>>>>>> // TODO Auto-generated catch block
>>>>>>>>>>>>>>>>>>>>>>>>> e.printStackTrace();
>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Regards.-
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>>>>>>>>>>>>>>>>>>> users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>>>>>>>>> <mailto:users-unsubscribe_at_grizzly.dev.java.net>
>>>>>>>>>>>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>>>>>>>>>>>>> users-help_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>>>>>>>>> <mailto:users-help_at_grizzly.dev.java.net>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>>>>>>>>>>>>>>>>>> users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>>>>>>>>>>>> users-help_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> ------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>>>>>>>>>>>>>>>>>> users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>>>>>>>>>>>> users-help_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>>>>>>>>>>>>>>>> users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>>>>>>>>>> users-help_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>>>>>>>>>>>>>>> users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>>>>>>>>> users-help_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>>>>>>>>>>>>>> users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>>>>>>>> users-help_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>>>>>>>>>>>>> users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>>>>>>> users-help_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>>>>>>>>>>>> users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>>>>>> users-help_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>>>>>>>>>> users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>>>> users-help_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>>> users-help_at_grizzly.dev.java.net
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>> users-help_at_grizzly.dev.java.net
>>>>>>>>>>>>>>
>>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>>>>>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>>>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>>>>>>>>>
>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>>>>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>>>>>>
>>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>>>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>>>>
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>