Author: nbelaevski
Date: 2010-12-09 10:00:26 -0500 (Thu, 09 Dec 2010)
New Revision: 20481
Added:
trunk/core/impl/src/main/java/org/richfaces/application/SkinningExternalContextFactory.java
Modified:
trunk/core/impl/src/main/resources/META-INF/components.faces-config.xml
Log:
Added workaround for
http://java.net/jira/browse/JAVASERVERFACES-1646
Added:
trunk/core/impl/src/main/java/org/richfaces/application/SkinningExternalContextFactory.java
===================================================================
---
trunk/core/impl/src/main/java/org/richfaces/application/SkinningExternalContextFactory.java
(rev 0)
+++
trunk/core/impl/src/main/java/org/richfaces/application/SkinningExternalContextFactory.java 2010-12-09
15:00:26 UTC (rev 20481)
@@ -0,0 +1,88 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.richfaces.application;
+
+import javax.faces.FacesException;
+import javax.faces.FacesWrapper;
+import javax.faces.context.ExternalContext;
+import javax.faces.context.ExternalContextFactory;
+import javax.faces.context.ExternalContextWrapper;
+
+/**
+ * @author Nick Belaevski
+ *
+ */
+public class SkinningExternalContextFactory extends ExternalContextFactory implements
FacesWrapper<ExternalContextFactory> {
+
+ private ExternalContextFactory factory;
+
+ private static final class ExternalContextWrapperImpl extends ExternalContextWrapper
{
+
+ private ExternalContext externalContext;
+
+ public ExternalContextWrapperImpl(ExternalContext externalContext) {
+ super();
+ this.externalContext = externalContext;
+ }
+
+ @Override
+ public String getMimeType(String file) {
+ String mimeType;
+
+ if (file != null && file.endsWith(".ecss")) {
+ mimeType = "text/plain";
+ } else {
+ mimeType = super.getMimeType(file);
+ }
+
+ return mimeType;
+ }
+
+ @Override
+ public ExternalContext getWrapped() {
+ return externalContext;
+ }
+
+ }
+
+ public SkinningExternalContextFactory(ExternalContextFactory factory) {
+ super();
+ this.factory = factory;
+ }
+
+ @Override
+ public ExternalContextFactory getWrapped() {
+ return factory;
+ }
+
+ @Override
+ public ExternalContext getExternalContext(Object context, Object request, Object
response) throws FacesException {
+ ExternalContext externalContext = factory.getExternalContext(context, request,
response);
+
+ return wrap(externalContext);
+ }
+
+ private ExternalContext wrap(ExternalContext externalContext) {
+ return new ExternalContextWrapperImpl(externalContext);
+ }
+
+}
Modified: trunk/core/impl/src/main/resources/META-INF/components.faces-config.xml
===================================================================
--- trunk/core/impl/src/main/resources/META-INF/components.faces-config.xml 2010-12-09
14:50:01 UTC (rev 20480)
+++ trunk/core/impl/src/main/resources/META-INF/components.faces-config.xml 2010-12-09
15:00:26 UTC (rev 20481)
@@ -4,6 +4,7 @@
version="2.0">
<factory>
+
<external-context-factory>org.richfaces.application.SkinningExternalContextFactory</external-context-factory>
<partial-view-context-factory>org.richfaces.context.PartialViewContextFactoryImpl</partial-view-context-factory>
</factory>