Package ch.entwine.weblounge.common.content

Examples of ch.entwine.weblounge.common.content.SearchResult


      handler = constructor.newInstance(arglist);
    } catch (Throwable t) {
      throw new IllegalStateException("Unable to instantiate class " + handlerClass + ": " + t.getMessage(), t);
    }

    SearchResult searchResult;
    SearchQuery q = new SearchQueryImpl(site);
    q.withTypes(MovieResource.TYPE);
    q.sortByPublishingDate(Order.Descending);
    q.withPublisher(harvesterUser);
    try {
      searchResult = contentRepository.find(q);
    } catch (ContentRepositoryException e) {
      logger.error("Error searching for resources with harvester publisher.");
      throw new RuntimeException(e);
    }

    Option<Date> harvestingDate = Option.<Date> none();
    if (searchResult.getHitCount() > 0) {
      MovieResourceSearchResultItemImpl resultItem = (MovieResourceSearchResultItemImpl) searchResult.getItems()[0];
      harvestingDate = some(resultItem.getMovieResource().getPublishFrom());
    }

    try {
      harvest(repositoryUrl, harvestingDate, handler);
View Full Code Here


      return;
    }

    logger.info("Start harvesting resource " + recordIdentifier);

    SearchResult searchResult = searchSource(recordIdentifier);

    if (isDeleted) {
      if (searchResult.getHitCount() != 1) {
        logger.warn("The found element size is wrong!, size: " + searchResult.getHitCount());
        return;
      }
      ResourceSearchResultItem resourceResult = (ResourceSearchResultItem) searchResult.getItems()[0];
      deleteResource(resourceResult.getResourceURI());
      logger.info("Deleted harvestet resource " + recordIdentifier);
    } else {
      if (searchResult.getHitCount() == 1) {
        MovieResourceSearchResultItemImpl movieResultItem = (MovieResourceSearchResultItemImpl) searchResult.getItems()[0];
        MovieResource movieResource = movieResultItem.getMovieResource();

        if (!date.after(movieResource.getPublishFrom()))
          return;
        logger.warn("Update harvested element {}", recordIdentifier);

        Resource<MovieContent> resource = parseResource(record);
        resource.getURI().setIdentifier(movieResource.getIdentifier());
        resource.setPublished(harvesterUser, date, null);
        removeContents(resource);

        MovieContent content = parseResourceContent(record);
        content.setSource(recordIdentifier);
        resource.addContent(content);

        addResource(resource);
        addContent(resource.getURI(), content);
      } else if (searchResult.getHitCount() > 1) {
        logger.error("The repository contains already more than one element of {}", recordIdentifier);
      } else {
        Resource<?> resource = parseResource(record);
        resource.setPublished(harvesterUser, date, null);
        ResourceContent content = parseResourceContent(record);
View Full Code Here

   * @param sourceIdentifier
   *          the record identifier
   * @return the search result
   */
  private SearchResult searchSource(String sourceIdentifier) {
    SearchResult searchResult;
    SearchQuery q = new SearchQueryImpl(site);
    q.withSource(sourceIdentifier);
    try {
      searchResult = contentRepository.find(q);
    } catch (ContentRepositoryException e) {
View Full Code Here

    SearchQuery query = new SearchQueryImpl(site);
    query.withVersion(Resource.LIVE);
    query.withTypes(ImageResource.TYPE);
    for (int i = 0; i < imageSubjects.size(); i++)
      query.withSubject(imageSubjects.get(i));
    SearchResult result;
    try {
      result = repository.find(query);
    } catch (ContentRepositoryException e) {
      logger.warn("Error searching for image with given subjects.");
      return SKIP_BODY;
    }

    ResourceURI uri = null;
    ImageResource image = null;
    ImageContent imageContent = null;
    String linkToImage = null;
    PrintWriter writer = null;

    try {
      writer = response.getWriter();

      for (int i = 0; i < result.getItems().length; i++) {
        uri = new ImageResourceURIImpl(site, null, result.getItems()[i].getId());
        if (repository.exists(uri)) {
          image = (ImageResource) repository.get(uri);
          language = LanguageUtils.getPreferredLanguage(image, request, site);
          image.switchTo(language);
          imageContent = image.getContent(language);
View Full Code Here

    repository.put(work);

    SearchQuery q = new SearchQueryImpl(site);
    q.withoutPublication();

    SearchResult result = repository.find(q);
    assertEquals(1, result.getDocumentCount());
  }
View Full Code Here

  public void testWithoutModification() throws ContentRepositoryException,
  IllegalStateException, IOException {
    FileResource fileResource = new FileResourceImpl(documentURI);

    SearchQuery q = new SearchQueryImpl(site);
    SearchResult result = repository.find(q);
    assertEquals(1, result.getDocumentCount());

    repository.put(fileResource);

    q = new SearchQueryImpl(site);
    q.withoutModification();

    result = repository.find(q);
    assertEquals(2, result.getDocumentCount());
  }
View Full Code Here

    q.withOffset(offset);
    q.withLimit(limit);
    q.withTypes(Page.TYPE);

    // Return the result
    SearchResult result = null;
    try {
      result = repository.find(q);
    } catch (ContentRepositoryException e) {
      logger.error("Error trying to access the content repository", e);
      throw new WebApplicationException(e);
    }

    // Load the target page used to render the search result
    Page page = null;
    try {
      page = getTargetPage(request);
      request.setAttribute(WebloungeRequest.PAGE, page);
    } catch (ContentRepositoryException e) {
      logger.error("Error loading target page at {}", url);
      DispatchUtils.sendInternalError(request, response);
      return true;
    }

    // Get hold of the page template
    PageTemplate template = null;
    try {
      template = getTargetTemplate(page, request);
      if (template == null)
        template = site.getDefaultTemplate();
    } catch (IllegalStateException e) {
      logger.warn(e.getMessage());
      DispatchUtils.sendInternalError(request, response);
      return true;
    }

    // Identify the stage composer and remove any existing content
    String stage = template.getStage();
    logger.trace("Removing existing pagelets from composer '{}'", stage);
    while (page.getComposer(stage) != null && page.getComposer(stage).size() > 0) {
      page.removePagelet(stage, 0);
    }

    // Add the search result to the main composer
    logger.trace("Adding search result to composer '{}'", stage);
    for (SearchResultItem item : result.getItems()) {

      Renderer renderer = item.getPreviewRenderer();

      // Is this search result coming from the search index or from a module?
      if (!(item instanceof ResourceSearchResultItem)) {
View Full Code Here

  /**
   * Test method for {@link SearchQuery#withPreferredVersion(long)}.
   */
  @Test
  public void testWithPreferredVersion() throws Exception {
    SearchResult result = null;

    // Make sure the homepage doesn't get into our way
    repository.delete(new PageURIImpl(site, "/"), true);

    SearchQuery workPreferredQuery = new SearchQueryImpl(site).withPreferredVersion(WORK).sortByCreationDate(Order.Ascending);
    SearchQuery livePreferredQuery = new SearchQueryImpl(site).withPreferredVersion(LIVE).sortByCreationDate(Order.Ascending);
    SearchQuery workOnlyQuery = new SearchQueryImpl(site).withVersion(WORK).sortByCreationDate(Order.Ascending);
    SearchQuery liveOnlyQuery = new SearchQueryImpl(site).withVersion(LIVE).sortByCreationDate(Order.Ascending);

    // Test empty repository
    assertEquals(0, repository.find(workPreferredQuery).getDocumentCount());
    assertEquals(0, repository.find(livePreferredQuery).getDocumentCount());
    assertEquals(0, repository.find(workOnlyQuery).getDocumentCount());
    assertEquals(0, repository.find(liveOnlyQuery).getDocumentCount());

    // Create URI and pages and add them to the repository
    ResourceURI liveOnlyURI = new PageURIImpl(site, "/liveonly", LIVE);
    ResourceURI liveAndWorkLiveURI = new PageURIImpl(site, "/liveandwork", LIVE);
    ResourceURI liveAndWorkWorkURI = new PageURIImpl(site, "/liveandwork", WORK);
    ResourceURI workOnlyURI = new PageURIImpl(site, "/workonly", WORK);

    Page liveOnly = new PageImpl(liveOnlyURI);
    liveOnly.setTemplate(template.getIdentifier());
    Page liveAndWorkLive = new PageImpl(liveAndWorkLiveURI);
    liveAndWorkLive.setTemplate(template.getIdentifier());
    Page liveAndWorkWork = new PageImpl(liveAndWorkWorkURI);
    liveAndWorkWork.setTemplate(template.getIdentifier());
    Page workOnly = new PageImpl(workOnlyURI);
    workOnly.setTemplate(template.getIdentifier());

    // Add the live only live page
    repository.put(liveOnly);
    assertEquals(0, repository.find(workOnlyQuery).getDocumentCount());
    assertEquals(1, repository.find(liveOnlyQuery).getDocumentCount());
    result = repository.find(workPreferredQuery);
    assertEquals(1, result.getDocumentCount());
    ResourceSearchResultItem searchResultItem = (ResourceSearchResultItem) result.getItems()[0];
    assertEquals(LIVE, searchResultItem.getResourceURI().getVersion());
    result = repository.find(livePreferredQuery);
    assertEquals(1, result.getDocumentCount());
    assertEquals(LIVE, ((ResourceSearchResultItem) result.getItems()[0]).getResourceURI().getVersion());

    // Add the work only work page
    repository.put(workOnly);
    assertEquals(1, repository.find(workOnlyQuery).getDocumentCount());
    assertEquals(1, repository.find(liveOnlyQuery).getDocumentCount());
    result = repository.find(workPreferredQuery);
    assertEquals(2, result.getDocumentCount());
    assertEquals(LIVE, ((ResourceSearchResultItem) result.getItems()[0]).getResourceURI().getVersion());
    assertEquals(WORK, ((ResourceSearchResultItem) result.getItems()[1]).getResourceURI().getVersion());
    result = repository.find(livePreferredQuery);
    assertEquals(2, result.getDocumentCount());
    assertEquals(LIVE, ((ResourceSearchResultItem) result.getItems()[0]).getResourceURI().getVersion());
    assertEquals(WORK, ((ResourceSearchResultItem) result.getItems()[1]).getResourceURI().getVersion());

    // Add the live and work live page
    repository.put(liveAndWorkLive);
    assertEquals(1, repository.find(workOnlyQuery).getDocumentCount());
    assertEquals(2, repository.find(liveOnlyQuery).getDocumentCount());
    result = repository.find(workPreferredQuery);
    assertEquals(3, result.getDocumentCount());
    assertEquals(LIVE, ((ResourceSearchResultItem) result.getItems()[0]).getResourceURI().getVersion());
    assertEquals(WORK, ((ResourceSearchResultItem) result.getItems()[1]).getResourceURI().getVersion());
    assertEquals(LIVE, ((ResourceSearchResultItem) result.getItems()[2]).getResourceURI().getVersion());
    result = repository.find(livePreferredQuery);
    assertEquals(3, result.getDocumentCount());
    assertEquals(LIVE, ((ResourceSearchResultItem) result.getItems()[0]).getResourceURI().getVersion());
    assertEquals(WORK, ((ResourceSearchResultItem) result.getItems()[1]).getResourceURI().getVersion());
    assertEquals(LIVE, ((ResourceSearchResultItem) result.getItems()[2]).getResourceURI().getVersion());

    // Add the live and work work page
    repository.put(liveAndWorkWork);
    assertEquals(2, repository.find(workOnlyQuery).getDocumentCount());
    assertEquals(2, repository.find(liveOnlyQuery).getDocumentCount());
    result = repository.find(workPreferredQuery);
    assertEquals(3, result.getDocumentCount());
    assertEquals(LIVE, ((ResourceSearchResultItem) result.getItems()[0]).getResourceURI().getVersion());
    assertEquals(WORK, ((ResourceSearchResultItem) result.getItems()[1]).getResourceURI().getVersion());
    assertEquals(WORK, ((ResourceSearchResultItem) result.getItems()[2]).getResourceURI().getVersion());
    result = repository.find(livePreferredQuery);
    assertEquals(3, result.getDocumentCount());
    assertEquals(LIVE, ((ResourceSearchResultItem) result.getItems()[0]).getResourceURI().getVersion());
    assertEquals(WORK, ((ResourceSearchResultItem) result.getItems()[1]).getResourceURI().getVersion());
    assertEquals(LIVE, ((ResourceSearchResultItem) result.getItems()[2]).getResourceURI().getVersion());

    // Lock the page, which will trigger a call to index.update()
    repository.lock(liveAndWorkWorkURI, new UserImpl("user"));
    assertEquals(2, repository.find(workOnlyQuery).getDocumentCount());
    assertEquals(2, repository.find(liveOnlyQuery).getDocumentCount());
    result = repository.find(workPreferredQuery);
    assertEquals(3, result.getDocumentCount());
    assertEquals(LIVE, ((ResourceSearchResultItem) result.getItems()[0]).getResourceURI().getVersion());
    assertEquals(WORK, ((ResourceSearchResultItem) result.getItems()[1]).getResourceURI().getVersion());
    assertEquals(WORK, ((ResourceSearchResultItem) result.getItems()[2]).getResourceURI().getVersion());
    result = repository.find(livePreferredQuery);
    assertEquals(3, result.getDocumentCount());
    assertEquals(LIVE, ((ResourceSearchResultItem) result.getItems()[0]).getResourceURI().getVersion());
    assertEquals(WORK, ((ResourceSearchResultItem) result.getItems()[1]).getResourceURI().getVersion());
    assertEquals(LIVE, ((ResourceSearchResultItem) result.getItems()[2]).getResourceURI().getVersion());
  }
View Full Code Here

    for (String subject : subjects) {
      query.withSubject(subject);
    }

    // Load the result and add feed entries
    SearchResult result = contentRepository.find(query);
    List<SyndEntry> entries = new ArrayList<SyndEntry>();
    limit = result.getItems().length;

    while (limit > 0) {
      SearchResultItem item = result.getItems()[limit - 1];
      limit--;

      // Get the page
      PageSearchResultItem pageItem = (PageSearchResultItem) item;
      Page page = pageItem.getPage();
View Full Code Here

    if (uri == null && imageSubjects != null && imageSubjects.size() > 0) {
      SearchQuery query = new SearchQueryImpl(site);
      query.withVersion(Resource.LIVE);
      query.withTypes(ImageResource.TYPE);
      query.withSubjects(SearchQuery.Quantifier.All, imageSubjects.toArray(new String[imageSubjects.size()]));
      SearchResult result;
      try {
        result = repository.find(query);
      } catch (ContentRepositoryException e) {
        logger.warn("Error searching for image with given subjects ({}): {}", StringUtils.join(imageSubjects, ", "), e.getMessage());
        return SKIP_BODY;
      }
      if (result.getHitCount() > 1)
        logger.warn("Search returned {} images for subjects '{}' on {}", new Object[] { result.getHitCount(), StringUtils.join(imageSubjects, ", "), request.getUrl() });
      if (result.getHitCount() > 0)
        uri = new ImageResourceURIImpl(site, null, result.getItems()[0].getId());
    }
    if (uri == null && StringUtils.isNotBlank(altImageId))
      uri = new ImageResourceURIImpl(site, null, altImageId);
    if (uri == null && StringUtils.isNotBlank(altImagePath))
      uri = new ImageResourceURIImpl(site, altImagePath, null);
View Full Code Here

TOP

Related Classes of ch.entwine.weblounge.common.content.SearchResult

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.