Class URLManager
- java.lang.Object
-
- lumis.portal.url.URLManager
-
- All Implemented Interfaces:
IURLManager
public class URLManager extends Object implements IURLManager
IURLManager
implementation.- Since:
- 5.0.0
- Version:
- $Revision: 24195 $ $Date: 2020-10-22 11:39:20 -0300 (Thu, 22 Oct 2020) $
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface lumis.portal.url.IURLManager
IURLManager.CreateStrategy, IURLManager.PathReferenceType
-
-
Field Summary
Fields Modifier and Type Field Description static String
LUM_DO_NOT_FIX_REFERENCE_PATHS
-
Fields inherited from interface lumis.portal.url.IURLManager
AUTO_GENERATE_WEB_RESOURCE_PROPERTY_NAME, EXTENSION_HTML_PROPERTY_NAME, EXTENSION_SHTML_PROPERTY_NAME, FORCE_FIRST_PAGE_LINK_TO_CHANNEL_LINK_PROPERTY_NAME, FRIENDLY_URL_ENABLE_PROPERTY_NAME, FRIENDLY_URL_PATTERN_PROPERTY_NAME, PATH_REFERENCE_TYPE_PROPERTY_NAME, URL_RESOLVER_PROPERTY_NAME, WEBSITE_PROPERTY_NAME
-
-
Constructor Summary
Constructors Constructor Description URLManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
clearPageCacheReference(WebResource webResource)
Clears the page cache reference in a web resource.String
convertHTMLPathsToDynamicPaths(String html)
Deprecated.String
convertHTMLPathsToDynamicPaths(String html, IWebsite baseWebsite)
Deprecated.String
convertHTMLPathToDynamicPath(String href, IWebsite baseWebsite)
Replaces the given path to web resource by the corresponding dynamic path.void
deleteWebResourceByPageIds(SessionConfig sessionConfig, Collection<String> pagesIds, Map<String,String[]> parameters, Locale locale, PortalEventOperationType opType, boolean isAutomaticBulkExpiration, ITransaction transaction)
Delete the webresources by page identifier.void
deleteWebResourceRedirection(String sourceWebsiteId, String sourcePath)
Deletes the web resource redirection rule for the specified source website and path.void
deleteWebResourcesFromPage(String pageId)
Delete allweb resources
from the page that has the given identifier.void
deleteWebResourcesInChannelTree(String rootChannelId)
Delete allweb resources
in the tree for which the root is the givenrootChannelId
.WebResource
findWebResourceByPathAndWebsite(String websiteId, String path)
Finds a web resource by it's website identifier and path.String
fixReferencesAccordingToPath(String html, String path)
Deprecated.String
fixReferencesAccordingToPath(String html, String path, IPortalMode portalMode)
Deprecated.String
fixReferencesAccordingToPath(String html, String path, IPortalMode portalMode, String pageId)
Fixes references within an HTML according to the given path.protected String
getPathClashSuffix()
Returns a random unique suffix to be appended to web resource friendly paths whenever a path clash happens.WebResource
getWebResourceByDynamicPath(String dynamicPath, IURLManager.CreateStrategy createStrategy, Locale locale, WebResource creator)
Returns a web resource for the given dynamic path.Collection<WebResource>
getWebResourceByParameterAndValue(String parameterName, String parameterValue)
Get allweb resources
that fits the given parameter name with the given parameter value.String
getWebResourcePathByDynamicPath(String dynamicPath, Locale locale)
Deprecated.WebResource
getWebResourceToRedirect(String sourceWebsiteId, String sourcePath)
Returns the web resource to redirect to when the given path on the given website is accessed.URI
getWebResourceURI(String dynamicPath, Locale locale, IWebsite baseWebsite, boolean baseSecure, IPortalMode portalMode, WebResource creator)
Returns the URI for referencing a web resource given its dynamic path.protected String
processBackgroundHref(lumis.portal.url.URLManager.IHrefProcessor processor, String matchString)
String
processHref(String url, List<ITheme> themes, String applicationRequestedPath, Locale locale, IWebsiteBaseURL websiteBaseURL, boolean baseSecure, IPortalMode portalMode, IURLManager.PathReferenceType pathfixType, WebResource creator)
Processes a URL to be rendered correctly in a portal page.String
processHTML(String originalHtml, Locale locale)
Processes a HTML to be used.String
processHTML(String originalHtml, Locale locale, boolean baseSecure, IWebsiteBaseURL baseURL)
Processes a HTML to be used.String
processHTML(String originalHtml, IPageWebResourceRenderRequest request)
Processes a HTML to be rendered correctly in a portal page.String
processHTMLDynamicPathReferences(String html)
Deprecated.String
processHTMLDynamicPathReferences(String htmlContent, Locale locale, boolean convertGuestOnlyCaches)
Deprecated.String
processHTMLDynamicPathReferences(String htmlContent, Locale locale, IWebsite baseWebsite, boolean baseSecure)
Processes references to dynamic paths in a given HTML code.void
recalculateFriendlyPaths(Collection<? extends WebResource> webResources)
Calculates and updates friendly paths of the given web resources.void
recalculateFriendlyPathsInChannelTree(String rootChannelId)
Calculates and updates friendly paths of allweb resources
in the tree for which the root is the givenrootChannelId
.void
setWebResourcesMissingData(IWebResourceFactory webResourceFactory, Collection<WebResource> webResources, boolean cacheEnabled, boolean friendlyURLEnabled)
Sets missing data in the given web resources.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface lumis.portal.url.IURLManager
getWebResourceByDynamicPath, getWebResourceByDynamicPath, getWebResourceURI, getWebResourceURI, processHref, processHref, processHref
-
-
-
-
Field Detail
-
LUM_DO_NOT_FIX_REFERENCE_PATHS
public static final String LUM_DO_NOT_FIX_REFERENCE_PATHS
- See Also:
- Constant Field Values
-
-
Method Detail
-
getWebResourcePathByDynamicPath
@Deprecated public String getWebResourcePathByDynamicPath(String dynamicPath, Locale locale) throws PortalException
Deprecated.Description copied from interface:IURLManager
Returns the path for accessing the web resource of the given dynamic path. Uses theAUTO
strategy for getting the web resource.The returned path may be a variant from the real web resource path, according to the dynamicPath parameters and other configurations.
- Specified by:
getWebResourcePathByDynamicPath
in interfaceIURLManager
- Parameters:
dynamicPath
- the dynamic path.locale
- the the web resource locale.- Returns:
- the path for accessing the web resource.
- Throws:
PortalException
-
getWebResourceByDynamicPath
public WebResource getWebResourceByDynamicPath(String dynamicPath, IURLManager.CreateStrategy createStrategy, Locale locale, WebResource creator) throws PortalException
Description copied from interface:IURLManager
Returns a web resource for the given dynamic path.If the corresponding web resource already exists in the persistence, that instance is returned. Otherwise,
createStrategy
defines the behavior:- NEVER: throws
PortalObjectNotFoundException
. - TRANSIENT: creates and returns a transient web resource.
- AUTO: if the web resource does not have friendly path or cache, behaves as TRANSIENT, otherwise also persists the web resource.
This method uses its own transactions.
- Specified by:
getWebResourceByDynamicPath
in interfaceIURLManager
- Parameters:
dynamicPath
- the dynamic path.createStrategy
- the strategy used if no web resource exists in persistence for the given dynamic path.locale
- the web resource's locale.creator
- the web resource that is requesting the given web resource (if any).- Returns:
- the web resource.
- Throws:
PortalObjectNotFoundException
- if no web resource for the given dynamic path exists, andcreateStrategy
isNEVER
.PortalException
- NEVER: throws
-
getPathClashSuffix
protected String getPathClashSuffix()
Returns a random unique suffix to be appended to web resource friendly paths whenever a path clash happens.- Returns:
- a random unique suffix to be appended to web resource friendly paths whenever a path clash happens.
- Since:
- 12.2.0
-
convertHTMLPathsToDynamicPaths
@Deprecated public String convertHTMLPathsToDynamicPaths(String html) throws PortalException
Deprecated.Description copied from interface:IURLManager
Replaces, in an HTML code, paths to web resources by the corresponding dynamic path. If the path is absolute and it can be translated into dynamic path, it will be replaced by the relative dynamic path.- Specified by:
convertHTMLPathsToDynamicPaths
in interfaceIURLManager
- Returns:
- the converted HTML code.
- Throws:
PortalException
-
convertHTMLPathsToDynamicPaths
@Deprecated public String convertHTMLPathsToDynamicPaths(String html, IWebsite baseWebsite) throws PortalException
Deprecated.Description copied from interface:IURLManager
Replaces, in an HTML code, paths to web resources by the corresponding dynamic path. If the path is absolute and it can be translated into dynamic path, it will be replaced by the relative dynamic path.If the given HTML needs to be fully processed (including path fix, web resource and themes processing) prefer
IURLManager.processHTML(String, IPageWebResourceRenderRequest)
instead.- Specified by:
convertHTMLPathsToDynamicPaths
in interfaceIURLManager
baseWebsite
- the website the HTML belongs to.- Returns:
- the converted HTML code.
- Throws:
PortalException
-
convertHTMLPathToDynamicPath
public String convertHTMLPathToDynamicPath(String href, IWebsite baseWebsite) throws PortalException
Description copied from interface:IURLManager
Replaces the given path to web resource by the corresponding dynamic path. If the path is absolute and it can be translated into dynamic path, it will be replaced by the relative dynamic path.- Specified by:
convertHTMLPathToDynamicPath
in interfaceIURLManager
- Parameters:
href
- the path.baseWebsite
- the website the HTML belongs to.- Returns:
- the converted path.
- Throws:
PortalException
-
processHTMLDynamicPathReferences
@Deprecated public String processHTMLDynamicPathReferences(String html) throws PortalException
Deprecated.Description copied from interface:IURLManager
Processes references to dynamic paths in a given HTML code. Generates and persists corresponding web resources information, if necessary, and replaces the dynamic paths by the proper web resource paths.- Specified by:
processHTMLDynamicPathReferences
in interfaceIURLManager
- Parameters:
html
- the HTML code.- Returns:
- the HTML code, with the references replaced.
- Throws:
PortalException
-
processHTMLDynamicPathReferences
@Deprecated public String processHTMLDynamicPathReferences(String htmlContent, Locale locale, boolean convertGuestOnlyCaches) throws PortalException
Deprecated.Description copied from interface:IURLManager
Processes references to dynamic paths in a given HTML code. Generates and persists corresponding web resources information, if necessary, and replaces the dynamic paths by the proper web resource paths.- Specified by:
processHTMLDynamicPathReferences
in interfaceIURLManager
locale
- the locale.convertGuestOnlyCaches
- if true, pages with cache enabled only for guest will also have their dynamic paths converted.- Returns:
- the HTML code, with the references replaced.
- Throws:
PortalException
-
processHTMLDynamicPathReferences
public String processHTMLDynamicPathReferences(String htmlContent, Locale locale, IWebsite baseWebsite, boolean baseSecure) throws PortalException
Description copied from interface:IURLManager
Processes references to dynamic paths in a given HTML code. Generates and persists corresponding web resources information, if necessary, and replaces the dynamic paths by the proper web resource hrefs.- Specified by:
processHTMLDynamicPathReferences
in interfaceIURLManager
- Parameters:
htmlContent
- the HTML code.locale
- the locale.baseWebsite
- the website the HTML is relative to (in case it is generated as relative). May benull
if the base website is unknown. If not specified, the generated hrefs will be absolute.baseSecure
-true
if the base URL for the HTML is secure,false
otherwise. If a href requires a different secure level (HTTP or HTTPS), it will have to be absolute.- Returns:
- the HTML code, with the references replaced.
- Throws:
PortalException
-
setWebResourcesMissingData
public void setWebResourcesMissingData(IWebResourceFactory webResourceFactory, Collection<WebResource> webResources, boolean cacheEnabled, boolean friendlyURLEnabled) throws PortalException
Description copied from interface:IURLManager
Sets missing data in the given web resources.- Specified by:
setWebResourcesMissingData
in interfaceIURLManager
- Parameters:
webResourceFactory
- the web resource factory of the given web resources.webResources
- the web resources.cacheEnabled
- indicates that cache is enabled.friendlyURLEnabled
- indicates that friendly URL is enabled.- Throws:
PortalException
-
recalculateFriendlyPaths
public void recalculateFriendlyPaths(Collection<? extends WebResource> webResources) throws PortalException
Description copied from interface:IURLManager
Calculates and updates friendly paths of the given web resources.The original values that get updated are stored to use for redirecting to the updated ones. This redirect information can be obtained using
IURLManager.getWebResourceToRedirect(String, String)
.- Specified by:
recalculateFriendlyPaths
in interfaceIURLManager
- Parameters:
webResources
- the web resources.- Throws:
PortalException
-
fixReferencesAccordingToPath
@Deprecated public String fixReferencesAccordingToPath(String html, String path) throws PortalException
Deprecated.Description copied from interface:IURLManager
Fixes references within an HTML according to the given path.The HTML passed in to this method should be appropriate for the context root of the solution. This method changes path references in the HTML such that the references are relative to the specified path. The path must begin with the "/" character and be relative to the web application root.
- Specified by:
fixReferencesAccordingToPath
in interfaceIURLManager
- Parameters:
html
- the HTML content to be fixed.path
- the path.- Returns:
- the original HTML with adjusted references.
- Throws:
PortalException
-
fixReferencesAccordingToPath
@Deprecated public String fixReferencesAccordingToPath(String html, String path, IPortalMode portalMode) throws PortalException
Deprecated.Description copied from interface:IURLManager
Fixes references within an HTML according to the given path.The HTML passed in to this method should be appropriate for the context root of the solution. This method changes path references in the HTML such that the references are relative to the specified path. The path must begin with the "/" character and be relative to the web application root.
- Specified by:
fixReferencesAccordingToPath
in interfaceIURLManager
- Parameters:
html
- the HTML content to be fixed.path
- the path.portalMode
- the current Portal Mode.- Returns:
- the original HTML with adjusted references.
- Throws:
PortalException
-
fixReferencesAccordingToPath
public String fixReferencesAccordingToPath(String html, String path, IPortalMode portalMode, String pageId) throws PortalException
Description copied from interface:IURLManager
Fixes references within an HTML according to the given path.The HTML passed in to this method should be appropriate for the context root of the solution. This method changes path references in the HTML such that the references are relative to the specified path. The path must begin with the "/" character and be relative to the web application root.
- Specified by:
fixReferencesAccordingToPath
in interfaceIURLManager
- Parameters:
html
- the HTML content to be fixed.path
- the path.portalMode
- the current Portal Mode.pageId
- the identifier of the page being rendered.- Returns:
- the original HTML with adjusted references.
- Throws:
PortalException
-
clearPageCacheReference
public void clearPageCacheReference(WebResource webResource)
Clears the page cache reference in a web resource.- Parameters:
webResource
- the web resource.- Since:
- 5.0.0
- See Also:
WebResource.pageCache
-
getWebResourceURI
public URI getWebResourceURI(String dynamicPath, Locale locale, IWebsite baseWebsite, boolean baseSecure, IPortalMode portalMode, WebResource creator) throws PortalException
Description copied from interface:IURLManager
Returns the URI for referencing a web resource given its dynamic path.The returned URI may be relative to the specified base website, or absolute if it is not possible to create such relative URI.
- Specified by:
getWebResourceURI
in interfaceIURLManager
- Parameters:
dynamicPath
- the web resource's dynamic path.locale
- the web resource's locale.baseWebsite
- the website the URI is relative to (in case it is generated as relative). May benull
if the base website is unknown. If not specified, the returned URI will be absolute.baseSecure
-true
if the base URL for the returned URI is secure,false
otherwise. If the web resource requires a different secure level (HTTP or HTTPS), the URI will have to be absolute.portalMode
- the desiredIPortalMode
.- Returns:
- the URI to access the specified web resource. It may be relative to the specified base website or absolute.
- Throws:
PortalException
-
processHTML
public String processHTML(String originalHtml, IPageWebResourceRenderRequest request) throws PortalException
Description copied from interface:IURLManager
Processes a HTML to be rendered correctly in a portal page.The given HTML is adjusted according with themes, relative path, web resource path translations, file download path translations and websites.
- Specified by:
processHTML
in interfaceIURLManager
- Parameters:
originalHtml
- the HTML to be processed.- Returns:
- the processed HTML.
- Throws:
PortalException
-
processHTML
public String processHTML(String originalHtml, Locale locale) throws PortalException
Description copied from interface:IURLManager
Processes a HTML to be used.Resources referred by the given HTML are adjusted
- Specified by:
processHTML
in interfaceIURLManager
- Parameters:
originalHtml
- the HTML to be processed.locale
- the locale to use for resource resolution.- Returns:
- the processed HTML.
- Throws:
PortalException
-
processHTML
public String processHTML(String originalHtml, Locale locale, boolean baseSecure, IWebsiteBaseURL baseURL) throws PortalException
Description copied from interface:IURLManager
Processes a HTML to be used.Resources referred by the given HTML are adjusted
- Specified by:
processHTML
in interfaceIURLManager
- Parameters:
originalHtml
- the HTML to be processed.locale
- the locale to use for resource resolution.baseSecure
- indicates if the process HTML should consider links to secure URLs.baseURL
- the base URL being accessed when the process is performed (if any).- Returns:
- the processed HTML.
- Throws:
PortalException
-
processBackgroundHref
protected String processBackgroundHref(lumis.portal.url.URLManager.IHrefProcessor processor, String matchString) throws PortalException
- Parameters:
processor
- The Href Processor to usematchString
- The string to be processed for background href- Returns:
- Throws:
PortalException
- Since:
- 8.2.0
-
processHref
public String processHref(String url, List<ITheme> themes, String applicationRequestedPath, Locale locale, IWebsiteBaseURL websiteBaseURL, boolean baseSecure, IPortalMode portalMode, IURLManager.PathReferenceType pathfixType, WebResource creator) throws PortalException
Description copied from interface:IURLManager
Processes a URL to be rendered correctly in a portal page.The given URL is adjusted according with themes, relative path, web resource path translations, file download path translations and websites.
The parameter
applicationRequestedPath
is used to adjust the URL to the application requested path. This method resolve path to public files.- Specified by:
processHref
in interfaceIURLManager
- Parameters:
url
- the URL to resolve. The URL must be absolute or relative to the portal web application root. If relative, a starting '/' character is optional.themes
- list of themes to be applied to the URL.applicationRequestedPath
- the application path of the request the URL will be used in. This path is used to adjust the URL.locale
- the locale for the URL. It is applied only if the URL does not already implies a specific locale.websiteBaseURL
- the website of the request the URL will be used in.baseSecure
- if the request the URL will be used in is secure or not.portalMode
- the portal mode.pathfixType
- specifies how paths should be referenced.creator
- the web resource that is requesting the processing.- Returns:
- the resolved URL.
- Throws:
PortalException
- if any error occurs during the process.
-
findWebResourceByPathAndWebsite
public WebResource findWebResourceByPathAndWebsite(String websiteId, String path) throws PortalException
Description copied from interface:IURLManager
Finds a web resource by it's website identifier and path.- Specified by:
findWebResourceByPathAndWebsite
in interfaceIURLManager
- Parameters:
websiteId
- the website identifier.path
- the path.- Returns:
- the found web resource or
null
if no web resource matches the given parameters. - Throws:
PortalException
-
deleteWebResourcesInChannelTree
public void deleteWebResourcesInChannelTree(String rootChannelId) throws PortalException
Description copied from interface:IURLManager
Delete allweb resources
in the tree for which the root is the givenrootChannelId
.- Specified by:
deleteWebResourcesInChannelTree
in interfaceIURLManager
- Parameters:
rootChannelId
- The channelId to start recursing from- Throws:
PortalException
-
recalculateFriendlyPathsInChannelTree
public void recalculateFriendlyPathsInChannelTree(String rootChannelId) throws PortalException
Description copied from interface:IURLManager
Calculates and updates friendly paths of allweb resources
in the tree for which the root is the givenrootChannelId
.The original values that get updated are stored to use for redirecting to the updated ones. This redirect information can be obtained using
IURLManager.getWebResourceToRedirect(String, String)
.- Specified by:
recalculateFriendlyPathsInChannelTree
in interfaceIURLManager
- Parameters:
rootChannelId
- The channelId to start recursing from- Throws:
PortalException
-
deleteWebResourcesFromPage
public void deleteWebResourcesFromPage(String pageId) throws PortalException
Description copied from interface:IURLManager
Delete allweb resources
from the page that has the given identifier.- Specified by:
deleteWebResourcesFromPage
in interfaceIURLManager
- Parameters:
pageId
- The identifier of the page that has the web resources to be deleted- Throws:
PortalException
-
getWebResourceByParameterAndValue
public Collection<WebResource> getWebResourceByParameterAndValue(String parameterName, String parameterValue)
Description copied from interface:IURLManager
Get allweb resources
that fits the given parameter name with the given parameter value.- Specified by:
getWebResourceByParameterAndValue
in interfaceIURLManager
- Parameters:
parameterName
- a given parameter nameparameterValue
- a given parameter value- Returns:
- list of all
web resources
that satisfies parameter name equals parameter value.
-
getWebResourceToRedirect
public WebResource getWebResourceToRedirect(String sourceWebsiteId, String sourcePath) throws PortalException
Description copied from interface:IURLManager
Returns the web resource to redirect to when the given path on the given website is accessed.This method uses its own transaction.
- Specified by:
getWebResourceToRedirect
in interfaceIURLManager
- Parameters:
sourceWebsiteId
- the web site identifier.sourcePath
- the path, starting with '/', relative to the web site root.- Returns:
- the web resource to redirect to, or
null
if there is no redirect information for the specified website and path. - Throws:
PortalException
-
deleteWebResourceRedirection
public void deleteWebResourceRedirection(String sourceWebsiteId, String sourcePath) throws PortalException
Description copied from interface:IURLManager
Deletes the web resource redirection rule for the specified source website and path.- Specified by:
deleteWebResourceRedirection
in interfaceIURLManager
- Parameters:
sourceWebsiteId
- the source website identifier.sourcePath
- the source path.- Throws:
PortalException
-
deleteWebResourceByPageIds
public void deleteWebResourceByPageIds(SessionConfig sessionConfig, Collection<String> pagesIds, Map<String,String[]> parameters, Locale locale, PortalEventOperationType opType, boolean isAutomaticBulkExpiration, ITransaction transaction) throws PortalException
Delete the webresources by page identifier.- Parameters:
sessionConfig
- the user's session.pagesIds
- the page identifiers.parameters
- the parameters.locale
- the locale.opType
- the operation type.isAutomaticBulkExpiration
- indicates whether this is a bulk operation.transaction
- the transaction.- Throws:
PortalException
- Since:
- 10.2.0
-
-