[gatein-dev] Favicon - Request for comments (and suggestions)
Juraci Paixão Kröhling
jpkroehling at redhat.com
Fri Nov 29 04:00:46 EST 2013
Patrice,
Thanks a lot! We indeed have RedefinableResourceFilter, but not this
specific component plugin.
Would it be a problem if I implement this as a GateIn feature? Do you
foresee any possible conflicts with your implementation?
- Juca.
On 11/29/2013 09:39 AM, Patrice LAMARQUE wrote:
> 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 <mailto: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>
> <mailto: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>
> <mailto: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 <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 <mailto:gatein-dev at lists.jboss.org>
> https://lists.jboss.org/mailman/listinfo/gatein-dev
>
>
>
>
> --
> *Patrice Lamarque
> eXo - VP Products
>
> *
>
>
> _______________________________________________
> gatein-dev mailing list
> gatein-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/gatein-dev
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 555 bytes
Desc: OpenPGP digital signature
Url : http://lists.jboss.org/pipermail/gatein-dev/attachments/20131129/fe89a933/attachment.bin
More information about the gatein-dev
mailing list