Class URLManager

  • All Implemented Interfaces:
    IURLManager

    public class URLManager
    extends java.lang.Object
    implements IURLManager
    IURLManager implementation.
    Since:
    5.0.0
    Version:
    $Revision: 25808 $ $Date: 2023-07-04 15:20:55 -0300 (Tue, 04 Jul 2023) $
    • Field Detail

      • LUM_DO_NOT_FIX_REFERENCE_PATHS

        public static final java.lang.String LUM_DO_NOT_FIX_REFERENCE_PATHS
        See Also:
        Constant Field Values
    • Constructor Detail

      • URLManager

        public URLManager()
    • Method Detail

      • getWebResourcePathByDynamicPath

        @Deprecated
        public java.lang.String getWebResourcePathByDynamicPath​(java.lang.String dynamicPath,
                                                                java.util.Locale locale)
                                                         throws PortalException
        Deprecated.
        Description copied from interface: IURLManager
        Returns the path for accessing the web resource of the given dynamic path. Uses the AUTO 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 interface IURLManager
        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​(java.lang.String dynamicPath,
                                                       IURLManager.CreateStrategy createStrategy,
                                                       java.util.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 interface IURLManager
        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. If the given locale is not supported for that web resource, a web resource with a supported locale will be returned.
        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, and createStrategy is NEVER.
        PortalException
      • getPathClashSuffix

        protected java.lang.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 java.lang.String convertHTMLPathsToDynamicPaths​(java.lang.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 interface IURLManager
        Returns:
        the converted HTML code.
        Throws:
        PortalException
      • convertHTMLPathsToDynamicPaths

        @Deprecated
        public java.lang.String convertHTMLPathsToDynamicPaths​(java.lang.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 interface IURLManager
        baseWebsite - the website the HTML belongs to.
        Returns:
        the converted HTML code.
        Throws:
        PortalException
      • convertHTMLPathToDynamicPath

        public java.lang.String convertHTMLPathToDynamicPath​(java.lang.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 interface IURLManager
        Parameters:
        href - the path.
        baseWebsite - the website the HTML belongs to.
        Returns:
        the converted path.
        Throws:
        PortalException
      • processHTMLDynamicPathReferences

        @Deprecated
        public java.lang.String processHTMLDynamicPathReferences​(java.lang.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 interface IURLManager
        Parameters:
        html - the HTML code.
        Returns:
        the HTML code, with the references replaced.
        Throws:
        PortalException
      • processHTMLDynamicPathReferences

        @Deprecated
        public java.lang.String processHTMLDynamicPathReferences​(java.lang.String htmlContent,
                                                                 java.util.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 interface IURLManager
        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 java.lang.String processHTMLDynamicPathReferences​(java.lang.String htmlContent,
                                                                 java.util.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 interface IURLManager
        Parameters:
        htmlContent - the HTML code.
        locale - the locale.
        baseWebsite - the website the HTML is relative to (in case it is generated as relative). May be null 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,
                                               java.util.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 interface IURLManager
        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
      • fixReferencesAccordingToPath

        @Deprecated
        public java.lang.String fixReferencesAccordingToPath​(java.lang.String html,
                                                             java.lang.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 interface IURLManager
        Parameters:
        html - the HTML content to be fixed.
        path - the path.
        Returns:
        the original HTML with adjusted references.
        Throws:
        PortalException
      • fixReferencesAccordingToPath

        @Deprecated
        public java.lang.String fixReferencesAccordingToPath​(java.lang.String html,
                                                             java.lang.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 interface IURLManager
        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 java.lang.String fixReferencesAccordingToPath​(java.lang.String html,
                                                             java.lang.String path,
                                                             IPortalMode portalMode,
                                                             java.lang.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 interface IURLManager
        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 java.net.URI getWebResourceURI​(java.lang.String dynamicPath,
                                              java.util.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 interface IURLManager
        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 be null 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 desired IPortalMode.
        Returns:
        the URI to access the specified web resource. It may be relative to the specified base website or absolute.
        Throws:
        PortalException
      • processHTML

        public java.lang.String processHTML​(java.lang.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 interface IURLManager
        Parameters:
        originalHtml - the HTML to be processed.
        Returns:
        the processed HTML.
        Throws:
        PortalException
      • processHTML

        public java.lang.String processHTML​(java.lang.String originalHtml,
                                            java.util.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 interface IURLManager
        Parameters:
        originalHtml - the HTML to be processed.
        locale - the locale to use for resource resolution.
        Returns:
        the processed HTML.
        Throws:
        PortalException
      • processHTML

        public java.lang.String processHTML​(java.lang.String originalHtml,
                                            java.util.List<ITheme> themes,
                                            java.util.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 interface IURLManager
        Parameters:
        originalHtml - the HTML to be processed.
        themes - the themes to be used during resource resolving.
        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 java.lang.String processBackgroundHref​(lumis.portal.url.URLManager.IHrefProcessor processor,
                                                         java.lang.String matchString)
                                                  throws PortalException
        Parameters:
        processor - The Href Processor to use
        matchString - The string to be processed for background href
        Returns:
        Throws:
        PortalException
        Since:
        8.2.0
      • processHref

        public java.lang.String processHref​(java.lang.String url,
                                            java.util.List<ITheme> themes,
                                            java.lang.String applicationRequestedPath,
                                            java.util.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 interface IURLManager
        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​(java.lang.String websiteId,
                                                           java.lang.String path)
                                                    throws PortalException
        Description copied from interface: IURLManager
        Finds a web resource by it's website identifier and path.

        Warning: due to internal use of caches and optimization of this method, the returned web resource object does not reflect latest changes on the related page cache.

        Specified by:
        findWebResourceByPathAndWebsite in interface IURLManager
        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
      • getWebResourceByParameterAndValue

        public java.util.Collection<WebResource> getWebResourceByParameterAndValue​(java.lang.String parameterName,
                                                                                   java.lang.String parameterValue)
        Description copied from interface: IURLManager
        Get all web resources that fits the given parameter name with the given parameter value.
        Specified by:
        getWebResourceByParameterAndValue in interface IURLManager
        Parameters:
        parameterName - a given parameter name
        parameterValue - a given parameter value
        Returns:
        list of all web resources that satisfies parameter name equals parameter value.
      • getWebResourceToRedirect

        public WebResource getWebResourceToRedirect​(java.lang.String sourceWebsiteId,
                                                    java.lang.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 interface IURLManager
        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​(java.lang.String sourceWebsiteId,
                                                 java.lang.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 interface IURLManager
        Parameters:
        sourceWebsiteId - the source website identifier.
        sourcePath - the source path.
        Throws:
        PortalException
      • deleteWebResourceByPageIds

        public void deleteWebResourceByPageIds​(SessionConfig sessionConfig,
                                               java.util.Collection<java.lang.String> pagesIds,
                                               java.util.Map<java.lang.String,​java.lang.String[]> parameters,
                                               java.util.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