Package ch.entwine.weblounge.common.site

Examples of ch.entwine.weblounge.common.site.Site


  @GET
  @Path("/")
  public Response getStatistics(@Context HttpServletRequest request) {

    // Get the site's cache
    Site site = getSite(request);
    CacheConfiguration cache = getCache(site);

    StringBuilder stats = new StringBuilder();
    stats.append("<cache id=\"").append(cache.getIdentifier()).append("\">");
View Full Code Here


  @PUT
  @Path("/")
  public Response startCache(@Context HttpServletRequest request) {

    // Get the site's cache
    Site site = getSite(request);
    CacheConfiguration cache = getCache(site);

    // Is the cache already enabled?
    if (cache.isEnabled()) {
      ResponseBuilder response = Response.notModified();
View Full Code Here

  @DELETE
  @Path("/")
  public Response stopCache(@Context HttpServletRequest request) {

    // Extract the site
    Site site = getSite(request);
    if (site == null)
      throw new WebApplicationException(Status.SERVICE_UNAVAILABLE);

    // Get the site's cache
    CacheConfiguration cache = getCache(site);
View Full Code Here

  @DELETE
  @Path("/content")
  public Response clear(@Context HttpServletRequest request) {

    // Extract the site
    Site site = getSite(request);
    if (site == null)
      throw new WebApplicationException(Status.SERVICE_UNAVAILABLE);

    // Get the site's cache
    CacheConfiguration cache = getCache(site);
    if (cache == null)
      throw new WebApplicationException(Status.SERVICE_UNAVAILABLE);

    // Clear the cache
    try {
      Dictionary<Object, Object> properties = cache.getProperties();
      properties.put(CacheServiceImpl.OPT_CLEAR, "true");

      // Tell the configuration admin service to update the service
      cache.getConfiguration().update(properties);
      properties.remove(CacheServiceImpl.OPT_CLEAR);
      cache.getConfiguration().update(properties);
    } catch (Throwable t) {
      logger.error("Error updating cache '{}': {}", site.getIdentifier(), t.getMessage());
      throw new WebApplicationException();
    }

    // Send the response
    ResponseBuilder response = Response.ok();
View Full Code Here

   *           if the site is not found or is not running
   */
  protected Site getSite(HttpServletRequest request)
      throws WebApplicationException {
    URL url = UrlUtils.toURL(request, false, false);
    Site site = sites.findSiteByURL(url);
    if (site == null) {
      throw new WebApplicationException(Status.NOT_FOUND);
    } else if (!site.isOnline()) {
      throw new WebApplicationException(Status.SERVICE_UNAVAILABLE);
    }
    return site;
  }
View Full Code Here

     *
     * @see java.lang.Runnable#run()
     */
    public void run() {

      Site site = servlet.getSite();

      // Prepare the mock request and response objects
      PrecompileHttpServletRequest request = new PrecompileHttpServletRequest();
      request.setServerName(site.getHostname(environment).getURL().getHost());
      request.setServerPort(site.getHostname(environment).getURL().getPort());
      request.setMethod(site.getHostname(environment).getURL().getProtocol());
      request.setServletPath("");

      // Prepare a fake page in order to prevent erratic behavior during
      // precompilation
      Page page = new MockPageImpl(site);
      Pagelet pagelet = null;
      for (Module m : site.getModules()) {
        if (m.getRenderers().length > 0) {
          PageletRenderer r = m.getRenderers()[0];
          PageletURI pageletURI = new PageletURIImpl(page.getURI(), PageTemplate.DEFAULT_STAGE, 0);
          pagelet = new PageletImpl(pageletURI, m.getIdentifier(), r.getIdentifier());
        }
      }

      // Collect all renderers from modules and ask for precompilation
      List<URL> rendererUrls = new ArrayList<URL>();
      for (Module m : site.getModules()) {
        if (!m.isEnabled())
          break;
        for (PageletRenderer p : m.getRenderers()) {
          if (p.getRenderer() != null)
            rendererUrls.add(p.getRenderer());
          if (p.getRenderer(RendererType.Feed.name()) != null)
            rendererUrls.add(p.getRenderer(RendererType.Feed.name()));
          if (p.getRenderer(RendererType.Search.name()) != null)
            rendererUrls.add(p.getRenderer(RendererType.Search.name()));
          if (p.getEditor() != null)
            rendererUrls.add(p.getEditor());
        }
      }

      // Collect all site templates and ask for precompilation
      for (PageTemplate t : site.getTemplates()) {
        if (t.getRenderer() != null)
          rendererUrls.add(t.getRenderer());
      }

      if (rendererUrls.size() < 1) {
        logger.debug("No java server pages found to precompile for {}", site);
        return;
      }

      // Make sure there is a user
      security.setUser(new Guest(site.getIdentifier()));
      security.setSite(site);

      logger.info("Precompiling java server pages for '{}'", site);
      int errorCount = 0;
      Iterator<URL> rendererIterator = rendererUrls.iterator();
      while (keepGoing && rendererIterator.hasNext()) {
        MockHttpServletResponse response = new MockHttpServletResponse();
        URL entry = rendererIterator.next();
        String path = entry.getPath();
        String pathInfo = path.substring(path.indexOf(site.getIdentifier()) + site.getIdentifier().length());
        request.setPathInfo(pathInfo);
        request.setRequestURI(pathInfo);
        request.setAttribute(WebloungeRequest.PAGE, page);
        request.setAttribute(WebloungeRequest.COMPOSER, page.getComposer(PageTemplate.DEFAULT_STAGE));
        if (pagelet != null)
View Full Code Here

   * {@inheritDoc}
   *
   * @see ch.entwine.weblounge.common.content.page.Page#getPreview()
   */
  public Pagelet[] getPreview() {
    Site site = getURI().getSite();
    PageTemplate t = null;
    if (StringUtils.isNotBlank(template)) {
      t = site.getTemplate(template);
    } else {
      t = site.getDefaultTemplate();
      logger.warn("Page {} has no template associated, using site default '{}'", uri, t.getIdentifier());
    }
    if (preview == null && t == null) {
      logger.warn("Can't calculate the page preview due to missing page template '{}'", template);
      return new Pagelet[] {};
    } else if (preview == null && t.getStage() == null) {
      logger.warn("Can't calculate the page preview due to missing stage definition in page template '{}'", template);
      return new Pagelet[] {};
    } else if (preview == null) {
      this.preview = new ArrayList<Pagelet>();
      List<Pagelet> stage = composers.get(t.getStage());
      Set<PageletRenderer> previewRenderers = new HashSet<PageletRenderer>();
      if (stage != null) {
        for (Pagelet p : stage) {

          // Load the pagelet's module
          Module m = site.getModule(p.getModule());
          if (m == null) {
            logger.warn("Skipping pagelet '{}' for preview calculation: module '{}' can't be found", p, p.getModule());
            continue;
          }

View Full Code Here

   *          the site url, e.g. <code>http://www.entwinemedia.com</code>
   * @return the site
   */
  public Site findSiteByURL(URL url) {
    String hostName = url.getHost();
    Site site = sitesByServerName.get(hostName);
    if (site != null)
      return site;

    // There is obviously no direct match. Therefore, try to find a
    // wildcard match
    synchronized (sites) {
      for (Map.Entry<String, Site> e : sitesByServerName.entrySet()) {
        String siteUrl = e.getKey();

        try {
          // convert the host wildcard (ex. *.domain.tld) to a valid regex (ex.
          // .*\.domain\.tld)
          String alias = siteUrl.replace(".", "\\.");
          alias = alias.replace("*", ".*");
          if (hostName.matches(alias)) {
            site = e.getValue();
            logger.info("Registering {} to site '{}', matching url {}", new Object[] {
                url,
                site.getIdentifier(),
                siteUrl });
            sitesByServerName.put(hostName, site);
            return site;
          }
        } catch (PatternSyntaxException ex) {
View Full Code Here

      for (SiteURL url : site.getHostnames()) {
        if (!env.equals(url.getEnvironment()))
          continue;
        String hostName = url.getURL().getHost();
        Site registeredFirst = sitesByServerName.get(hostName);
        if (registeredFirst != null && !site.equals(registeredFirst)) {

          // Maybe a wildcard site has taken too many urls. Make sure concrete
          // sites are able to take over
          boolean replace = false;
          for (SiteURL siteUrl : registeredFirst.getHostnames()) {
            if (siteUrl.toExternalForm().contains("*")) {
              try {
                // convert the host wildcard (ex. *.domain.tld) to a valid regex
                // (ex.
                // .*\.domain\.tld)
 
View Full Code Here

    synchronized (sites) {
      sites.remove(site);
      siteBundles.remove(site);
      Iterator<Site> si = sitesByServerName.values().iterator();
      while (si.hasNext()) {
        Site s = si.next();
        if (site.equals(s)) {
          si.remove();
        }
      }
    }
View Full Code Here

TOP

Related Classes of ch.entwine.weblounge.common.site.Site

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.