users@grizzly.java.net

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

From: César Fernando Henriques <fuzzball_at_alttab.com.ar>
Date: Wed, 27 May 2009 00:07:07 -0300

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 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!!!

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
>
>