/** * Generate the Thumbnail Image URI. * * @param file the node * @return the Thumbnail uri with medium size * @throws Exception the exception */ public static String generateThumbnailImageURI(Node file) throws Exception { StringBuilder builder = new StringBuilder(); NodeLocation fielLocation = NodeLocation.getNodeLocationByNode(file); String repository = fielLocation.getRepository(); String workspaceName = fielLocation.getWorkspace(); String nodeIdentifiler = file.getPath().replaceFirst("/", ""); String portalName = PortalContainer.getCurrentPortalContainerName(); String restContextName = PortalContainer.getCurrentRestContextName(); InputStream stream = file.getNode(NodetypeConstant.JCR_CONTENT) .getProperty(NodetypeConstant.JCR_DATA) .getStream(); if (stream.available() == 0) return null; stream.close(); builder .append("/") .append(portalName) .append("/") .append(restContextName) .append("/") .append("thumbnailImage/medium/") .append(repository) .append("/") .append(workspaceName) .append("/") .append(nodeIdentifiler); return builder.toString(); }
public static String getWebdavURL(Node node, boolean withTimeParam, boolean isGetRealNodePath) throws Exception { NodeLocation location = NodeLocation.getNodeLocationByNode(getRealNode(node)); String repository = location.getRepository(); String workspace = location.getWorkspace(); String currentProtal = PortalContainer.getCurrentRestContextName(); String portalName = PortalContainer.getCurrentPortalContainerName(); String originalNodePath = isGetRealNodePath ? getRealNodePath(node) : Text.escape(node.getPath(), '%', true); StringBuffer imagePath = new StringBuffer(); imagePath .append("/") .append(portalName) .append("/") .append(currentProtal) .append("/jcr/") .append(repository) .append("/") .append(workspace) .append(originalNodePath); if (withTimeParam) { if (imagePath.indexOf("?") > 0) { imagePath.append("&time="); } else { imagePath.append("?time="); } imagePath.append(System.currentTimeMillis()); } return imagePath.toString(); }
public boolean equals(Object obj) { if (obj == null || !(obj instanceof NodeLocation)) return false; NodeLocation location2 = (NodeLocation) obj; return equalsString(this.repository, location2.getRepository()) && equalsString(this.getWorkspace(), location2.getWorkspace()) && (equalsString(this.getPath(), location2.getPath()) || equalsString(this.getUUID(), location2.getUUID())); }
/** * gets a Node list from a NodeLocation list * * @param locationList NodeLocation list * @return the Node list */ @SuppressWarnings("unchecked") public static final List getNodeListByLocationList(final List locationList) { List ret = new ArrayList(); try { ManageableRepository repository = WCMCoreUtils.getRepository(); SessionProvider systemSessionProvider = WCMCoreUtils.getSystemSessionProvider(); SessionProvider sessionProvider = WCMCoreUtils.getUserSessionProvider(); String systemWorkspace = repository.getConfiguration().getSystemWorkspaceName(); Session session = null; Node node; for (Object obj : locationList) if (obj instanceof NodeLocation) { node = null; try { NodeLocation location = (NodeLocation) obj; session = (systemWorkspace.equals(location.getWorkspace()) || location.isSystemSession) ? systemSessionProvider.getSession(location.getWorkspace(), repository) : sessionProvider.getSession(location.getWorkspace(), repository); node = location.getUUID() != null ? session.getNodeByUUID(location.getUUID()) : (Node) session.getItem(location.getPath()); ret.add(node); } catch (Exception e) { if (LOG.isWarnEnabled()) { LOG.warn(e.getMessage()); } } } else { ret.add(obj); } } catch (Exception e) { return ret; } return ret; }
/* (non-Javadoc) * @see org.exoplatform.services.wcm.link.LiveLinkManagerService#validateLink() */ public void updateLinks() throws Exception { try { Collection<NodeLocation> nodeLocationCollection = configurationService.getAllLivePortalsLocation(); SessionProvider sessionProvider = WCMCoreUtils.getSystemSessionProvider(); Session session = null; for (NodeLocation nodeLocation : nodeLocationCollection) { String workspace = nodeLocation.getWorkspace(); String path = nodeLocation.getPath(); ManageableRepository manageableRepository = repositoryService.getCurrentRepository(); session = sessionProvider.getSession(workspace, manageableRepository); updateLinkStatus( session, "select * from exo:linkable where jcr:path like '" + path + "/%'"); } } catch (Exception e) { if (LOG.isErrorEnabled()) { LOG.error("Error when perform updateLinks: ", e); } } }
@Override public Node filterNodeToDisplay(Node node) { try { Node displayNode = getNodeToCheckState(node); if (displayNode == null) return null; if (isSearchContent) return displayNode; NodeLocation nodeLocation = NodeLocation.getNodeLocationByNode(displayNode); WCMComposer wcmComposer = WCMCoreUtils.getService(WCMComposer.class); HashMap<String, String> filters = new HashMap<String, String>(); filters.put( WCMComposer.FILTER_MODE, queryCriteria.isLiveMode() ? WCMComposer.MODE_LIVE : WCMComposer.MODE_EDIT); return wcmComposer.getContent( nodeLocation.getWorkspace(), nodeLocation.getPath(), filters, WCMCoreUtils.getSystemSessionProvider()); } catch (Exception e) { return null; } }
/* * (non-Javadoc) * @see * org.exoplatform.services.wcm.search.SiteSearchService#searchSiteContents * (org.exoplatform.services.wcm.search.QueryCriteria, * org.exoplatform.services.jcr.ext.common.SessionProvider, int) */ public AbstractPageList<ResultNode> searchSiteContents( SessionProvider sessionProvider, QueryCriteria queryCriteria, int pageSize, boolean isSearchContent) throws Exception { ManageableRepository currentRepository = repositoryService.getCurrentRepository(); NodeLocation location = configurationService.getLivePortalsLocation(); Session session = sessionProvider.getSession(location.getWorkspace(), currentRepository); if (queryCriteria.isSearchWebpage()) { session = sessionProvider.getSession("portal-system", WCMCoreUtils.getRepository()); } QueryManager queryManager = session.getWorkspace().getQueryManager(); long startTime = System.currentTimeMillis(); Query query = createQuery(queryCriteria, queryManager); String suggestion = getSpellSuggestion(queryCriteria.getKeyword(), currentRepository); AbstractPageList<ResultNode> pageList = null; if (LOG.isDebugEnabled()) { LOG.debug("execute query: " + query.getStatement().toLowerCase()); } pageList = PageListFactory.createPageList( query.getStatement(), session.getWorkspace().getName(), query.getLanguage(), IdentityConstants.SYSTEM.equals(session.getUserID()), new NodeFilter(isSearchContent, queryCriteria), new DataCreator(), pageSize, 0, queryCriteria); long queryTime = System.currentTimeMillis() - startTime; pageList.setQueryTime(queryTime); pageList.setSpellSuggestion(suggestion); return pageList; }
public Result getPaginatedContents( NodeLocation nodeLocation, HashMap<String, String> filters, SessionProvider sessionProvider) throws Exception { String path = nodeLocation.getPath(); String workspace = nodeLocation.getWorkspace(); String mode = filters.get(FILTER_MODE); String version = filters.get(FILTER_VERSION); String orderBy = filters.get(FILTER_ORDER_BY); String orderType = filters.get(FILTER_ORDER_TYPE); String visibility = filters.get(FILTER_VISIBILITY); long offset = (filters.get(FILTER_OFFSET) != null) ? new Long(filters.get(FILTER_OFFSET)) : 0; long totalSize = (filters.get(FILTER_TOTAL) != null) ? new Long(filters.get(FILTER_TOTAL)) : 0; String remoteUser = getRemoteUser(); if (MODE_EDIT.equals(mode) && "publication:liveDate".equals(orderBy)) { orderBy = "exo:dateModified"; filters.put(FILTER_ORDER_BY, orderBy); } if (MODE_LIVE.equals(mode) && "exo:title".equals(orderBy)) { orderBy = "exo:titlePublished " + orderType + ", exo:title"; filters.put(FILTER_ORDER_BY, orderBy); } if (LOG.isDebugEnabled()) LOG.debug( "##### " + path + ":" + version + ":" + remoteUser + ":" + orderBy + ":" + orderType); NodeIterator nodeIterator; if (totalSize == 0) { SessionProvider systemProvider = WCMCoreUtils.getSystemSessionProvider(); nodeIterator = getViewableContents(workspace, path, filters, systemProvider, false); if (nodeIterator != null) { totalSize = nodeIterator.getSize(); } } if (WCMComposer.VISIBILITY_PUBLIC.equals(visibility) && MODE_LIVE.equals(mode)) { sessionProvider = remoteUser == null ? aclSessionProviderService.getAnonymSessionProvider() : aclSessionProviderService.getACLSessionProvider(getAnyUserACL()); } nodeIterator = getViewableContents(workspace, path, filters, sessionProvider, true); List<Node> nodes = new ArrayList<Node>(); Node node = null, viewNode = null; if (nodeIterator != null) { while (nodeIterator.hasNext()) { node = nodeIterator.nextNode(); viewNode = getViewableContent(node, filters); if (viewNode != null) { nodes.add(viewNode); } } } Result result = new Result(nodes, offset, totalSize, nodeLocation, filters); return result; }
/** * Get node's expression by a NodeLocation. * * @param NodeLocation location * @return The node's expression */ public static final String getExpressionByNodeLocation(final NodeLocation location) { return mergeString(location.getRepository(), location.getWorkspace(), location.getPath()); }