The component gets disabled during deployment  :P

Maybe I need to create a separate OSGi bundle  for this....

On Tue, Aug 21, 2012 at 4:46 PM, Sam Lee <[email protected]> wrote:

> @SlingFilter(scope = SlingFilterScope.REQUEST, order = Integer.MAX_VALUE,
> generateComponent = false)
> @Component(metatype = true, immediate = false, enabled = false)
> public class BlockAllButFelixFilter implements Filter {
>     @Override
>     public void doFilter(ServletRequest request, ServletResponse response,
> FilterChain chain) throws IOException, ServletException {
>         if (request instanceof HttpServletRequest && response instanceof
> HttpServletResponse) {
>             final HttpServletRequest httpRequest = (HttpServletRequest)
> request;
>             final HttpServletResponse httpResponse = (HttpServletResponse)
> response;
>
>             if (!httpRequest.getPathInfo().startsWith("/system/console/"))
> {
>                 httpResponse.sendError(503, "deployment on going...");
>                 return;
>
>             }
>         }
>
>         chain.doFilter(request, response);
>     }
>
>
>
> then you can control this in deployment script:
> curl -s -v -u admin:admin -d "action=enable"
> http://localhost:8080/system/console/components/saml.BlockAllButFelixFilter> 
> /dev/null
> curl -s -v -u admin:admin -d "action=disable"
> http://localhost:8080/system/console/components/saml.BlockAllButFelixFilter> 
> /dev/null
>
>
> On Tue, Aug 21, 2012 at 11:56 AM, Sam Lee <[email protected]> wrote:
>
>> Thanks.
>> Do you have an example of such servlet filter?
>>
>>
>>
>> On Tue, Aug 21, 2012 at 11:53 AM, Bertrand Delacretaz <
>> [email protected]> wrote:
>>
>>> Hi,
>>>
>>> On Tue, Aug 21, 2012 at 5:46 PM, Sam Lee <[email protected]> wrote:
>>> > When deploying OSGi bundles through Felix Web Console,  I want to
>>> block all
>>> > traffic to the sling instance. But, still able to deploy OSGi
>>> bundles....
>>>
>>> I've been doing that with a Servlet Filter that you activate before
>>> doing your upgrades, which returns a 503 status code with an
>>> explanation, and you disable it when done.
>>>
>>> -Bertrand
>>>
>>
>>
>

Reply via email to