Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * #%L
  * *********************************************************************************************************************
  *
  * NorthernWind - lightweight CMS
  * http://northernwind.tidalwave.it - hg clone https://bitbucket.org/tidalwave/northernwind-src
  * %%
  * Copyright (C) 2011 - 2014 Tidalwave s.a.s. (http://tidalwave.it)
  * %%
 * *********************************************************************************************************************
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations under the License.
 *
 * *********************************************************************************************************************
 *
 * $Id: SiteResetterOnFileSystemChange.java,v f214f4c8488f 2014/01/03 18:03:50 fabrizio $
 *
 * *********************************************************************************************************************
 * #L%
 */
package it.tidalwave.northernwind.core.model.spi;
import  javax.annotation.Nonnull;
import  it.tidalwave.messagebus.MessageBus;
import  it.tidalwave.messagebus.MessageBus.Listener;
A simple utility that forces a reset of the it.tidalwave.northernwind.core.model.Site when a change in the underlying file system is detected.

Author(s):
Fabrizio Giudici
Version:
$Id: SiteResetterOnFileSystemChange.java,v f214f4c8488f 2014/01/03 18:03:50 fabrizio $ /
public class SiteResetterOnFileSystemChange // TODO: rename to SiteReloaderOnFileSystemChange
  {
    @Inject @Nonnull
    @Inject @Named("applicationMessageBus") @Nonnull
    private MessageBus messageBus;
    private final Listener<ResourceFileSystemChangedEventlistener = new Listener<ResourceFileSystemChangedEvent>()
      {
        @Override
        public void notify (final @Nonnull ResourceFileSystemChangedEvent event)
          {
            // FIXME: the originator of the event could be a child filesystem in case of composite filesystems.
            // Either the event is listened by the parent and reposted, or we must be able to find whether a
            // given filesystem is the parent of another
            //
            // e.g. if (siteProvider.get().getSite().getFileSystemProvider().contains(event.getFileSystemProvider()))
            //
//            log.info("event fileSystemProvider {}", event.getFileSystemProvider());
//            log.info("site fileSystemProvider {}", siteProvider.get().getSite().getFileSystemProvider());
//            if (event.getFileSystemProvider() == siteProvider.get().getSite().getFileSystemProvider())
//              {
                log.info("Detected file change, resetting site...");
                .get().reload();
//              }
          }
      };
    /* package */ void initialize() // FIXME: unsubscribe on @PreDestroy
      {
        .subscribe(ResourceFileSystemChangedEvent.class);
        log.info("SiteResetterOnFileSystemChange installed");
      }
  }
New to GrepCode? Check out our FAQ X