Re: Displaying a Jenkins like "Getting ready to work" message in a web page when application is starting up

2018-12-12 Thread Tobias Gierke



On 10/5/18 11:13 AM, James Selvakumar wrote:

Hi Martin,

Thank you very much for the response.
I'll check that out.

On Fri, Oct 5, 2018 at 3:02 PM Martin Grigorov  wrote:


Hi,

You are very welcome!

Since you use Spring I'd recommend you to check this article+demo app:
https://github.com/nurkiewicz/spring-startup-progress
It should give you an idea how to do it.


Since I recently implemented the same for our application, here's two 
things I remember spending quite a lot of time on that were missing from 
the article:


1.) Valve operational way too late in the startup cycle

If you want the Valve to work from the very beginning of Tomcat startup 
you need to configure "deployOnStartup" and "backgroundProcessorDelay" 
inside server.xml like so:


  backgroundProcessorDelay="1"

    unpackWARs="true" autoDeploy="true">

2.) At least with Tomcat 9.0.5, requests to unmapped endpoints will flag 
the response OutputBuffer as 'suspended' and this will silently ignore 
whatever you're writing to it so the progress page will not work



To fix this, you need to check for a suspended response and call 
setSuspended(false) like this:


    @Override
    public void invoke(Request request, Response response) throws 
IOException, ServletException

    {
    final String requestURI = request.getRequestURI();
    if ( "/progress".equals( requestURI ) )
    {

    if ( response.isSuspended() )
    {
    // Dirty hack to work around the fact that if Tomcat 
decided the request endpoint
    // doesn't exist it already prepares sending a 404 and 
this in turn

    // invokes OutputBuffer#setSuspended(true) which would
    // silently drop the bytes we're about to write to the 
output stream

    response.setSuspended( false );
    }

    // do your thing

   }
   }


Cheers,
Tobias



On Fri, Oct 5, 2018 at 5:09 AM James Selvakumar 
wrote:


Hi all,

First of all I would like to thank the community for all the help offered
in the past. Thank you very much.

My application (Wicket + Spring + Hibernate) takes around 60 to 90

seconds

to startup and all the user has to see is an empty browser tab when the
application is starting up.
I've observed Jenkins displaying a familiar "Getting ready to work"

message

when it starts up.
I've seen some Atlassian products even displaying what's happening behind
the hood during startup.
Can someone explain how to do something similar with Wicket?


--
Tobias Gierke
Software Developer

Voipfuture GmbH   Wendenstr. 4   20097 Hamburg   Germany
Phone +49 40 688 9001 64   Fax +49 40 688 9001 99   www.voipfuture.com
Managing Directors   Jan Bastian   Eyal Ullert
Commercial Court AG Hamburg   HRB 109896   VAT ID DE263738086



-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: Displaying a Jenkins like "Getting ready to work" message in a web page when application is starting up

2018-10-05 Thread James Selvakumar
Hi Martin,

Thank you very much for the response.
I'll check that out.

On Fri, Oct 5, 2018 at 3:02 PM Martin Grigorov  wrote:

> Hi,
>
> You are very welcome!
>
> Since you use Spring I'd recommend you to check this article+demo app:
> https://github.com/nurkiewicz/spring-startup-progress
> It should give you an idea how to do it.
>
> On Fri, Oct 5, 2018 at 5:09 AM James Selvakumar 
> wrote:
>
> > Hi all,
> >
> > First of all I would like to thank the community for all the help offered
> > in the past. Thank you very much.
> >
> > My application (Wicket + Spring + Hibernate) takes around 60 to 90
> seconds
> > to startup and all the user has to see is an empty browser tab when the
> > application is starting up.
> > I've observed Jenkins displaying a familiar "Getting ready to work"
> message
> > when it starts up.
> > I've seen some Atlassian products even displaying what's happening behind
> > the hood during startup.
> > Can someone explain how to do something similar with Wicket?
> >
>


Re: Displaying a Jenkins like "Getting ready to work" message in a web page when application is starting up

2018-10-05 Thread Martin Grigorov
Hi,

You are very welcome!

Since you use Spring I'd recommend you to check this article+demo app:
https://github.com/nurkiewicz/spring-startup-progress
It should give you an idea how to do it.

On Fri, Oct 5, 2018 at 5:09 AM James Selvakumar  wrote:

> Hi all,
>
> First of all I would like to thank the community for all the help offered
> in the past. Thank you very much.
>
> My application (Wicket + Spring + Hibernate) takes around 60 to 90 seconds
> to startup and all the user has to see is an empty browser tab when the
> application is starting up.
> I've observed Jenkins displaying a familiar "Getting ready to work" message
> when it starts up.
> I've seen some Atlassian products even displaying what's happening behind
> the hood during startup.
> Can someone explain how to do something similar with Wicket?
>