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