Author: nbelaevski
Date: 2010-07-05 09:35:42 -0400 (Mon, 05 Jul 2010)
New Revision: 17717
Removed:
root/ui/core/trunk/ui/src/main/resources/META-INF/org.richfaces.resource.MediaOutputResource.resource.properties
Modified:
root/ui/core/trunk/ui/src/main/java/org/richfaces/component/AbstractMediaOutput.java
root/ui/core/trunk/ui/src/main/java/org/richfaces/resource/MediaOutputResource.java
root/ui/core/trunk/ui/src/main/java/org/richfaces/resource/PushResource.java
Log:
Resources fwk refactoring
Modified:
root/ui/core/trunk/ui/src/main/java/org/richfaces/component/AbstractMediaOutput.java
===================================================================
---
root/ui/core/trunk/ui/src/main/java/org/richfaces/component/AbstractMediaOutput.java 2010-07-05
12:55:55 UTC (rev 17716)
+++
root/ui/core/trunk/ui/src/main/java/org/richfaces/component/AbstractMediaOutput.java 2010-07-05
13:35:42 UTC (rev 17717)
@@ -23,6 +23,16 @@
package org.richfaces.component;
+import java.io.OutputStream;
+import java.util.Date;
+
+import javax.el.MethodExpression;
+import javax.faces.application.Resource;
+import javax.faces.application.ResourceHandler;
+import javax.faces.component.UIOutput;
+import javax.faces.context.FacesContext;
+import javax.faces.el.MethodBinding;
+
import org.ajax4jsf.resource.ResourceComponent2;
import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.EventName;
@@ -31,18 +41,10 @@
import org.richfaces.cdk.annotations.Tag;
import org.richfaces.cdk.annotations.TagType;
import org.richfaces.resource.MediaOutputResource;
+import org.richfaces.resource.UserResourceWrapper;
import org.richfaces.webapp.taglib.MethodBindingMethodExpressionAdaptor;
import org.richfaces.webapp.taglib.MethodExpressionMethodBindingAdaptor;
-import javax.el.MethodExpression;
-import javax.faces.application.Resource;
-import javax.faces.application.ResourceHandler;
-import javax.faces.component.UIOutput;
-import javax.faces.context.FacesContext;
-import javax.faces.el.MethodBinding;
-import java.util.Date;
-import java.io.OutputStream;
-
/**
* @author shura
*
@@ -120,11 +122,11 @@
public Resource getResource() {
FacesContext facesContext = getFacesContext();
ResourceHandler resourceHandler =
facesContext.getApplication().getResourceHandler();
- MediaOutputResource resource =
- (MediaOutputResource)
resourceHandler.createResource(MediaOutputResource.class.getName());
+ Resource resource =
resourceHandler.createResource(MediaOutputResource.class.getName());
+
+ MediaOutputResource mediaResource = (MediaOutputResource) ((UserResourceWrapper)
resource).getWrapped();
+ mediaResource.initialize(this);
- resource.initialize(this);
-
return resource;
}
Modified:
root/ui/core/trunk/ui/src/main/java/org/richfaces/resource/MediaOutputResource.java
===================================================================
---
root/ui/core/trunk/ui/src/main/java/org/richfaces/resource/MediaOutputResource.java 2010-07-05
12:55:55 UTC (rev 17716)
+++
root/ui/core/trunk/ui/src/main/java/org/richfaces/resource/MediaOutputResource.java 2010-07-05
13:35:42 UTC (rev 17717)
@@ -27,6 +27,8 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Date;
+import java.util.Map;
import javax.el.MethodExpression;
import javax.el.ValueExpression;
@@ -40,7 +42,13 @@
* @author Nick Belaevski
* @since 4.0
*/
-public class MediaOutputResource extends AbstractCacheableResource implements StateHolder
{
+@DynamicResource
+public class MediaOutputResource implements StateHolder, UserResource, CacheableResource
{
+
+ private String contentType;
+
+ private boolean cacheable;
+
private MethodExpression contentProducer;
private ValueExpression expiresExpression;
@@ -54,7 +62,6 @@
private ValueExpression timeToLiveExpression;
private Object userData;
- @Override
public InputStream getInputStream() throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
FacesContext facesContext = FacesContext.getCurrentInstance();
@@ -107,4 +114,44 @@
this.expiresExpression = uiMediaOutput.getValueExpression("expires");
this.timeToLiveExpression =
uiMediaOutput.getValueExpression("timeToLive");
}
+
+ public boolean isCacheable(FacesContext context) {
+ return cacheable;
+ }
+
+ public void setCacheable(boolean cacheable) {
+ this.cacheable = cacheable;
+ }
+
+ public Date getExpires(FacesContext context) {
+ return null;
+ }
+
+ public int getTimeToLive(FacesContext context) {
+ return -1;
+ }
+
+ public String getEntityTag(FacesContext context) {
+ return null;
+ }
+
+ public Map<String, String> getResponseHeaders() {
+ return null;
+ }
+
+ public Date getLastModified() {
+ return null;
+ }
+
+ public String getContentType() {
+ return contentType;
+ }
+
+ public void setContentType(String contentType) {
+ this.contentType = contentType;
+ }
+
+ public int getContentLength() {
+ return -1;
+ }
}
Modified: root/ui/core/trunk/ui/src/main/java/org/richfaces/resource/PushResource.java
===================================================================
---
root/ui/core/trunk/ui/src/main/java/org/richfaces/resource/PushResource.java 2010-07-05
12:55:55 UTC (rev 17716)
+++
root/ui/core/trunk/ui/src/main/java/org/richfaces/resource/PushResource.java 2010-07-05
13:35:42 UTC (rev 17717)
@@ -23,11 +23,15 @@
import java.io.IOException;
import java.io.InputStream;
+import java.net.URL;
+import java.util.HashMap;
import java.util.Map;
+import javax.faces.application.Resource;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
+import org.richfaces.application.ServiceTracker;
import org.richfaces.component.PushEventTracker;
import org.richfaces.component.PushListenersManager;
@@ -37,16 +41,19 @@
*/
//TODO make this a singleton
-public class PushResource extends AbstractBaseResource {
+@DynamicResource
+public class PushResource extends Resource {
- @Override
+ public PushResource() {
+ setResourceName(getClass().getName());
+ }
+
public InputStream getInputStream() throws IOException {
return null;
}
- @Override
public Map<String, String> getResponseHeaders() {
- Map<String, String> headers = super.getResponseHeaders();
+ Map<String, String> headers = new HashMap<String, String>();
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
String pushId = externalContext.getRequestParameterMap().get("id");
@@ -64,4 +71,27 @@
return headers;
}
+
+ public String getContentType() {
+ return null;
+ }
+
+ @Override
+ public String getRequestPath() {
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ ResourceCodec resourceCodec = ServiceTracker.getService(ResourceCodec.class);
+
+ String requestPath = resourceCodec.encodeResourceRequestPath(facesContext,
getResourceName(), null, null);
+ return resourceCodec.encodeJSFMapping(facesContext, requestPath);
+ }
+
+ @Override
+ public URL getURL() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean userAgentNeedsUpdate(FacesContext context) {
+ return true;
+ }
}
Deleted:
root/ui/core/trunk/ui/src/main/resources/META-INF/org.richfaces.resource.MediaOutputResource.resource.properties
===================================================================
Show replies by date