[gatein-dev] Favicon - Request for comments (and suggestions)
Patrice LAMARQUE
patrice.lamarque at exoplatform.com
Fri Nov 29 03:39:18 EST 2013
We've done this in eXo Platform :
https://jira.exoplatform.org/browse/PLF-497
https://github.com/exoplatform/platform/commit/586e1b411c9a9509e3d415a9f0fcbb91bb76e1ba
<external-component-plugins>
<target-component>org.exoplatform.web.filter.ExtensibleFilter</target-component>
<component-plugin>
<name>JSP filter Plugin</name>
<set-method>addFilterDefinitions</set-method>
<type>org.exoplatform.web.filter.FilterDefinitionPlugin</type>
<init-params>
<object-param>
<name>JSP Filter</name>
<object
type="org.exoplatform.web.filter.FilterDefinition">
<field
name="filter"><object
type="org.exoplatform.commons.platform.RedefinableResourceFilter"/></field>
<field name="patterns">
<!-- WARNING: the mapping is expressed
with regular expressions -->
<collection
type="java.util.ArrayList" item-type="java.lang.String">
<value>
<string>.*/.*\.jsp</string>
</value>
<value>
<string>.*/favicon\.ico</string>
</value>
</collection>
</field>
</object>
</object-param>
</init-params>
</component-plugin>
</external-component-plugins>
It's leveraging a customized filter called : RedefinableResourceFilter
that I'm not sure exists in Gatein (but should IMO) :
package org.exoplatform.web.filter;
import org.exoplatform.container.PortalContainer;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
public class RedefinableResourceFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse
response, FilterChain chain) throws IOException,
ServletException {
HttpServletRequest req = (HttpServletRequest) request;
PortalContainer pContainer =
PortalContainer.getInstance(req.getSession().getServletContext());
ServletContext context = pContainer.getPortalContext();
String path = req.getRequestURI();
String ctx = req.getContextPath();
if (ctx != null && ctx.length() > 1 && path.startsWith(ctx)) {
path = path.substring(ctx.length());
}
context.getRequestDispatcher(path).include(request, response);
}
}
On Fri, Nov 29, 2013 at 3:23 PM, Juraci Paixão Kröhling <
jpkroehling at redhat.com> wrote:
> Nicolas,
>
> My goal is to change the favicon from /portal, without affecting custom
> modifications that might have been done at /sample-portal. I think we
> have already this behavior for templates via extensions, but it doesn't
> seem to work for other resources (like .ico files).
>
> The final solution could be anything (extensions, service, ...), hence
> the request for suggestions :-)
>
> - Juca.
>
> On 11/28/2013 05:07 PM, Nicolas Filotto wrote:
> > I'm not sure I understand what you want to do, you want to be able to
> > modify the favicon from an extension (like sample-extension) or from an
> > new portal (like sample-portal)?
> >
> >
> > On Thu, Nov 28, 2013 at 3:40 PM, Juraci Paixão Kröhling
> > <jpkroehling at redhat.com <mailto:jpkroehling at redhat.com>> wrote:
> >
> > All,
> >
> > We have a request to display a specific favicon for JBoss Portal,
> and it
> > seems there's no "easy" (or correct) solution in place for that
> > right now.
> >
> > The first intuitive solution would be to override the templates, to
> make
> > them link to the desired favicon. This doesn't scales, as the whole
> > template is duplicated and it will only cause headaches in the
> future.
> >
> > The second possible solution would be to incorporate the path to the
> > favicon into the properties file, but this means having a fixed path
> to
> > the favicon, which is a step backwards from what there is today: in
> one
> > of the templates for /portal, it gets the favicon for the context
> path,
> > so, if the current portal is /example-portal, it currently gets the
> > favicon at /example-portal/favicon . With the favicon coming from the
> > properties file, this would not be the case anymore, as all favicons
> > would be coming from a fixed path.
> >
> > The third solution would be to build a FaviconService, that would
> take
> > care of determining the proper favicon path. It sounds to me that
> this
> > is a bit of overkill, but would be a clean solution.
> >
> > Of course, the best option would be to be possible to override the
> > favicon from /portal, but this doesn't seems to be possible at the
> > moment. It seems that only templates are overriden.
> >
> > Before proceeding with the third solution (which seems the most
> > desirable as of now), I would like to get your comments, opinions and
> > suggestions on how this could be better handled.
> >
> > Best Regards,
> > Juca.
> >
> >
> > _______________________________________________
> > gatein-dev mailing list
> > gatein-dev at lists.jboss.org <mailto:gatein-dev at lists.jboss.org>
> > https://lists.jboss.org/mailman/listinfo/gatein-dev
> >
> >
> >
> >
> > _______________________________________________
> > gatein-dev mailing list
> > gatein-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/gatein-dev
> >
>
>
>
> _______________________________________________
> gatein-dev mailing list
> gatein-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/gatein-dev
>
--
*Patrice Lamarque eXo - VP Products *
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/gatein-dev/attachments/20131129/add416ec/attachment-0001.html
More information about the gatein-dev
mailing list