[richfaces-svn-commits] JBoss Rich Faces SVN: r2360 - in trunk/framework/impl: src/main/java/org/ajax4jsf/resource and 1 other directories.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Mon Aug 20 18:49:47 EDT 2007
Author: alexsmirnov
Date: 2007-08-20 18:49:46 -0400 (Mon, 20 Aug 2007)
New Revision: 2360
Modified:
trunk/framework/impl/pom.xml
trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceBuilderImpl.java
trunk/framework/impl/src/main/java/org/richfaces/renderkit/html/images/SliderArrowImage.java
Log:
Use custom serialisation for a slider arrow parameters.
Modified: trunk/framework/impl/pom.xml
===================================================================
--- trunk/framework/impl/pom.xml 2007-08-20 22:28:02 UTC (rev 2359)
+++ trunk/framework/impl/pom.xml 2007-08-20 22:49:46 UTC (rev 2360)
@@ -1,4 +1,6 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<!--
<parent>
<artifactId>impl-parent</artifactId>
@@ -64,9 +66,11 @@
</goals>
<configuration>
<tasks>
- <ant antfile="${basedir}/generatescript.xml" inheritRefs="true">
+ <ant
+ antfile="${basedir}/generatescript.xml" inheritRefs="true">
<target name="assembly" />
- <property name="target-dir" value="${project.build.directory}/javascript">
+ <property name="target-dir"
+ value="${project.build.directory}/javascript">
</property>
</ant>
</tasks>
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceBuilderImpl.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceBuilderImpl.java 2007-08-20 22:28:02 UTC (rev 2359)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceBuilderImpl.java 2007-08-20 22:49:46 UTC (rev 2360)
@@ -29,6 +29,7 @@
import java.io.ObjectOutputStream;
import java.io.StreamCorruptedException;
import java.io.StringReader;
+import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.util.Collections;
import java.util.Date;
@@ -70,539 +71,540 @@
*/
public class ResourceBuilderImpl extends InternetResourceBuilder {
- private static final Log log = LogFactory.getLog(ResourceBuilderImpl.class);
+ private static final Log log = LogFactory.getLog(ResourceBuilderImpl.class);
- private static final String DATA_SEPARATOR = "/DATA/";
- private static final String DATA_BYTES_SEPARATOR = "/DATB/";
+ private static final String DATA_SEPARATOR = "/DATA/";
+ private static final String DATA_BYTES_SEPARATOR = "/DATB/";
- private static final Pattern DATA_SEPARATOR_PATTERN = Pattern.compile("/DAT(A|B)/");
-
- private static Map renderers;
+ private static final Pattern DATA_SEPARATOR_PATTERN = Pattern
+ .compile("/DAT(A|B)/");
- private static ResourceRenderer defaultRenderer = new MimeRenderer(null);
+ private static Map renderers;
- /**
- * keep resources instances . TODO - put this map to application-scope
- * attribute, for support clastering environment.
- */
- private Map resources = Collections.synchronizedMap(new HashMap());
+ private static ResourceRenderer defaultRenderer = new MimeRenderer(null);
- private long _startTime;
+ /**
+ * keep resources instances . TODO - put this map to application-scope
+ * attribute, for support clastering environment.
+ */
+ private Map resources = Collections.synchronizedMap(new HashMap());
- private Codec codec;
+ private long _startTime;
- static {
- renderers = new HashMap();
- // append known renderers for extentions.
- renderers.put(".gif", new GifRenderer());
- ResourceRenderer renderer = new JpegRenderer();
- renderers.put(".jpeg", renderer);
- renderers.put(".jpg", renderer);
- renderers.put(".png", new PngRenderer());
- renderers.put(".js", new ScriptRenderer());
- renderers.put(".css", new StyleRenderer());
- renderers.put(".log", new LogfileRenderer());
- renderers.put(".html", new HTMLRenderer());
- renderers.put(".xhtml", new MimeRenderer("application/xhtml+xml"));
- renderers.put(".xml", new MimeRenderer("text/xml"));
- renderers.put(".xcss", new TemplateCSSRenderer());
- // renderers.put(".htc",new BehaviorRenderer());
- // set in-memory caching ImageIO
- ImageIO.setUseCache(false);
+ private Codec codec;
- }
+ static {
+ renderers = new HashMap();
+ // append known renderers for extentions.
+ renderers.put(".gif", new GifRenderer());
+ ResourceRenderer renderer = new JpegRenderer();
+ renderers.put(".jpeg", renderer);
+ renderers.put(".jpg", renderer);
+ renderers.put(".png", new PngRenderer());
+ renderers.put(".js", new ScriptRenderer());
+ renderers.put(".css", new StyleRenderer());
+ renderers.put(".log", new LogfileRenderer());
+ renderers.put(".html", new HTMLRenderer());
+ renderers.put(".xhtml", new MimeRenderer("application/xhtml+xml"));
+ renderers.put(".xml", new MimeRenderer("text/xml"));
+ renderers.put(".xcss", new TemplateCSSRenderer());
+ // renderers.put(".htc",new BehaviorRenderer());
+ // set in-memory caching ImageIO
+ ImageIO.setUseCache(false);
- public WebXml getWebXml(FacesContext context) {
- WebXml webXml = (WebXml) context.getExternalContext().getApplicationMap().get(WebXml.CONTEXT_ATTRIBUTE);
- if (null == webXml) {
- throw new FacesException(
- "Resources framework is not initialised, check web.xml for Filter configuration");
}
- return webXml;
- }
- public ResourceBuilderImpl() {
- super();
- _startTime = System.currentTimeMillis();
- codec = new Codec();
- }
+ public WebXml getWebXml(FacesContext context) {
+ WebXml webXml = (WebXml) context.getExternalContext()
+ .getApplicationMap().get(WebXml.CONTEXT_ATTRIBUTE);
+ if (null == webXml) {
+ throw new FacesException(
+ "Resources framework is not initialised, check web.xml for Filter configuration");
+ }
+ return webXml;
+ }
- /**
- * @throws FacesException
- */
- protected void registerResources() throws FacesException {
- try {
- ClassLoader loader = Thread.currentThread().getContextClassLoader();
- Enumeration e = loader
- .getResources("META-INF/resources-config.xml");
- while (e.hasMoreElements()) {
- URL resource = (URL) e.nextElement();
- registerConfig(resource);
- }
- } catch (IOException e) {
- throw new FacesException(e);
- }
- }
+ public ResourceBuilderImpl() {
+ super();
+ _startTime = System.currentTimeMillis();
+ codec = new Codec();
+ }
- private void registerConfig(URL resourceConfig) {
- try {
- if (log.isDebugEnabled()) {
- log.debug("Process resources configuration file "+resourceConfig.toExternalForm());
- }
-
- InputStream in = resourceConfig.openStream();
- try {
- Digester digester = new Digester();
- digester.setValidating(false);
- digester.setEntityResolver(new EntityResolver() {
- // Dummi resolver - alvays do nothing
- public InputSource resolveEntity(String publicId,
- String systemId) throws SAXException, IOException {
- return new InputSource(new StringReader(""));
- }
- });
- digester.setNamespaceAware(false);
- digester.setUseContextClassLoader(true);
- digester.push(this);
- digester.addObjectCreate("resource-config/resource", "class",
- JarResource.class);
- digester.addObjectCreate("resource-config/resource/renderer",
- "class", HTMLRenderer.class);
- digester.addCallMethod(
- "resource-config/resource/renderer/content-type",
- "setContentType", 0);
- digester.addSetNext("resource-config/resource/renderer",
- "setRenderer", ResourceRenderer.class.getName());
- digester.addCallMethod("resource-config/resource/name",
- "setKey", 0);
- digester.addCallMethod("resource-config/resource/path",
- "setPath", 0);
- digester.addCallMethod("resource-config/resource/cacheable",
- "setCacheable", 0);
- digester.addCallMethod(
- "resource-config/resource/session-aware",
- "setSessionAware", 0);
- digester.addCallMethod("resource-config/resource/property",
- "setProperty", 2);
- digester.addCallParam("resource-config/resource/property/name",
- 0);
- digester.addCallParam(
- "resource-config/resource/property/value", 1);
- digester.addCallMethod("resource-config/resource/content-type",
- "setContentType", 0);
- digester.addSetNext("resource-config/resource", "addResource",
- InternetResource.class.getName());
- digester.parse(in);
- } finally {
- in.close();
- }
- } catch (IOException e) {
- throw new FacesException(e);
- } catch (SAXException e) {
- throw new FacesException(e);
+ /**
+ * @throws FacesException
+ */
+ protected void registerResources() throws FacesException {
+ try {
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ Enumeration e = loader
+ .getResources("META-INF/resources-config.xml");
+ while (e.hasMoreElements()) {
+ URL resource = (URL) e.nextElement();
+ registerConfig(resource);
+ }
+ } catch (IOException e) {
+ throw new FacesException(e);
+ }
}
- }
- /**
- */
- public void init()
- throws FacesException {
- // TODO - mace codec configurable.
- registerResources();
- }
+ private void registerConfig(URL resourceConfig) {
+ try {
+ if (log.isDebugEnabled()) {
+ log.debug("Process resources configuration file "
+ + resourceConfig.toExternalForm());
+ }
- /**
- * Base point for creating resource. Must detect type and build
- * appropriate instance. Currently - make static resource for ordinary
- * request, or instance of class.
- *
- * @param base
- * base object for resource ( resourcess in classpath
- * will be get relative to it package )
- * @param path
- * key - path to resource, resource class name etc.
- * @return
- * @throws FacesException
- */
- public InternetResource createResource(Object base, String path)
- throws FacesException {
- // TODO - detect type of resource ( for example, resources location path
- // in Skin
- try {
- return getResource(path);
- } catch (ResourceNotFoundException e) {
- try {
- return getResource(buildKey(base, path));
- } catch (ResourceNotFoundException e1) {
- if (log.isDebugEnabled()) {
- log.debug(Messages.getMessage(Messages.BUILD_RESOURCE_INFO,
- path));
+ InputStream in = resourceConfig.openStream();
+ try {
+ Digester digester = new Digester();
+ digester.setValidating(false);
+ digester.setEntityResolver(new EntityResolver() {
+ // Dummi resolver - alvays do nothing
+ public InputSource resolveEntity(String publicId,
+ String systemId) throws SAXException, IOException {
+ return new InputSource(new StringReader(""));
+ }
+ });
+ digester.setNamespaceAware(false);
+ digester.setUseContextClassLoader(true);
+ digester.push(this);
+ digester.addObjectCreate("resource-config/resource", "class",
+ JarResource.class);
+ digester.addObjectCreate("resource-config/resource/renderer",
+ "class", HTMLRenderer.class);
+ digester.addCallMethod(
+ "resource-config/resource/renderer/content-type",
+ "setContentType", 0);
+ digester.addSetNext("resource-config/resource/renderer",
+ "setRenderer", ResourceRenderer.class.getName());
+ digester.addCallMethod("resource-config/resource/name",
+ "setKey", 0);
+ digester.addCallMethod("resource-config/resource/path",
+ "setPath", 0);
+ digester.addCallMethod("resource-config/resource/cacheable",
+ "setCacheable", 0);
+ digester.addCallMethod(
+ "resource-config/resource/session-aware",
+ "setSessionAware", 0);
+ digester.addCallMethod("resource-config/resource/property",
+ "setProperty", 2);
+ digester.addCallParam("resource-config/resource/property/name",
+ 0);
+ digester.addCallParam(
+ "resource-config/resource/property/value", 1);
+ digester.addCallMethod("resource-config/resource/content-type",
+ "setContentType", 0);
+ digester.addSetNext("resource-config/resource", "addResource",
+ InternetResource.class.getName());
+ digester.parse(in);
+ } finally {
+ in.close();
+ }
+ } catch (IOException e) {
+ throw new FacesException(e);
+ } catch (SAXException e) {
+ throw new FacesException(e);
}
- }
}
- // path - is class name ?
- InternetResource res;
- try {
- Class resourceClass = Class.forName(path);
- res = createDynamicResource(path, resourceClass);
- } catch (Exception e) {
- try {
- res = createJarResource(base, path);
- } catch (ResourceNotFoundException ex) {
- res = createStaticResource(path);
- }
- // TODO - if resource not found, create static ?
+
+ /**
+ */
+ public void init() throws FacesException {
+ // TODO - mace codec configurable.
+ registerResources();
}
- return res;
- }
- private String buildKey(Object base, String path) {
- if (path.startsWith("/")) {
- return path.substring(1);
+ /**
+ * Base point for creating resource. Must detect type and build appropriate
+ * instance. Currently - make static resource for ordinary request, or
+ * instance of class.
+ *
+ * @param base
+ * base object for resource ( resourcess in classpath will be get
+ * relative to it package )
+ * @param path
+ * key - path to resource, resource class name etc.
+ * @return
+ * @throws FacesException
+ */
+ public InternetResource createResource(Object base, String path)
+ throws FacesException {
+ // TODO - detect type of resource ( for example, resources location path
+ // in Skin
+ try {
+ return getResource(path);
+ } catch (ResourceNotFoundException e) {
+ try {
+ return getResource(buildKey(base, path));
+ } catch (ResourceNotFoundException e1) {
+ if (log.isDebugEnabled()) {
+ log.debug(Messages.getMessage(Messages.BUILD_RESOURCE_INFO,
+ path));
+ }
+ }
+ }
+ // path - is class name ?
+ InternetResource res;
+ try {
+ Class resourceClass = Class.forName(path);
+ res = createDynamicResource(path, resourceClass);
+ } catch (Exception e) {
+ try {
+ res = createJarResource(base, path);
+ } catch (ResourceNotFoundException ex) {
+ res = createStaticResource(path);
+ }
+ // TODO - if resource not found, create static ?
+ }
+ return res;
}
- if (null == base) {
- return path;
+
+ private String buildKey(Object base, String path) {
+ if (path.startsWith("/")) {
+ return path.substring(1);
+ }
+ if (null == base) {
+ return path;
+ }
+ StringBuffer packageName = new StringBuffer(base.getClass()
+ .getPackage().getName().replace('.', '/'));
+ return packageName.append("/").append(path).toString();
}
- StringBuffer packageName = new StringBuffer(base.getClass()
- .getPackage().getName().replace('.', '/'));
- return packageName.append("/").append(path).toString();
- }
- public String getUri(InternetResource resource, FacesContext context,
- Object storeData) {
- StringBuffer uri = new StringBuffer();// ResourceServlet.DEFAULT_SERVLET_PATH).append("/");
- uri.append(resource.getKey());
- // append serialized data as Base-64 encoded request string.
- if (storeData != null) {
- try {
- byte[] objectData;
- if (storeData instanceof byte[]) {
- objectData = (byte[]) storeData;
- uri.append(DATA_BYTES_SEPARATOR);
- } else {
- ByteArrayOutputStream dataSteram = new ByteArrayOutputStream(
- 1024);
- ObjectOutputStream objStream = new ObjectOutputStream(
- dataSteram);
- objStream.writeObject(storeData);
- objStream.flush();
- objStream.close();
- dataSteram.close();
- objectData = dataSteram.toByteArray();
- uri.append(DATA_SEPARATOR);
+ public String getUri(InternetResource resource, FacesContext context,
+ Object storeData) {
+ StringBuffer uri = new StringBuffer();// ResourceServlet.DEFAULT_SERVLET_PATH).append("/");
+ uri.append(resource.getKey());
+ // append serialized data as Base-64 encoded request string.
+ if (storeData != null) {
+ try {
+ byte[] objectData;
+ if (storeData instanceof byte[]) {
+ objectData = (byte[]) storeData;
+ uri.append(DATA_BYTES_SEPARATOR);
+ } else {
+ ByteArrayOutputStream dataSteram = new ByteArrayOutputStream(
+ 1024);
+ ObjectOutputStream objStream = new ObjectOutputStream(
+ dataSteram);
+ objStream.writeObject(storeData);
+ objStream.flush();
+ objStream.close();
+ dataSteram.close();
+ objectData = dataSteram.toByteArray();
+ uri.append(DATA_SEPARATOR);
+ }
+ byte[] dataArray = encrypt(objectData);
+ uri.append(new String(dataArray, "ISO-8859-1"));
+
+ // / byte[] objectData = dataSteram.toByteArray();
+ // / uri.append("?").append(new
+ // String(Base64.encodeBase64(objectData),
+ // / "ISO-8859-1"));
+ } catch (Exception e) {
+ // Ignore errors, log it
+ log.error(Messages
+ .getMessage(Messages.QUERY_STRING_BUILDING_ERROR), e);
+ }
}
- byte[] dataArray = encrypt(objectData);
- uri.append(new String(dataArray, "ISO-8859-1"));
+ String resourceURL = getWebXml(context).getFacesResourceURL(context,
+ uri.toString());// context.getApplication().getViewHandler().getResourceURL(context,uri.toString());
+ if (resource.isSessionAware()) {
+ resourceURL = context.getExternalContext().encodeResourceURL(
+ resourceURL);
+ }
+ if (log.isDebugEnabled()) {
+ log.debug(Messages.getMessage(Messages.BUILD_RESOURCE_URI_INFO,
+ resource.getKey(), resourceURL));
+ }
+ return resourceURL;// context.getExternalContext().encodeResourceURL(resourceURL);
- // / byte[] objectData = dataSteram.toByteArray();
- // / uri.append("?").append(new
- // String(Base64.encodeBase64(objectData),
- // / "ISO-8859-1"));
- } catch (Exception e) {
- // Ignore errors, log it
- log.error(Messages
- .getMessage(Messages.QUERY_STRING_BUILDING_ERROR), e);
- }
}
- String resourceURL = getWebXml(context).getFacesResourceURL(context,
- uri.toString());// context.getApplication().getViewHandler().getResourceURL(context,uri.toString());
- if (resource.isSessionAware()) {
- resourceURL = context.getExternalContext().encodeResourceURL(
- resourceURL);
- }
- if (log.isDebugEnabled()) {
- log.debug(Messages.getMessage(Messages.BUILD_RESOURCE_URI_INFO,
- resource.getKey(), resourceURL));
- }
- return resourceURL;// context.getExternalContext().encodeResourceURL(resourceURL);
- }
+ /**
+ * @param key
+ * @return
+ */
+ public InternetResource getResourceForKey(String key)
+ throws ResourceNotFoundException {
- /**
- * @param key
- * @return
- */
- public InternetResource getResourceForKey(String key)
- throws ResourceNotFoundException {
+ Matcher matcher = DATA_SEPARATOR_PATTERN.matcher(key);
+ if (matcher.find()) {
+ int data = matcher.start();
+ key = key.substring(0, data);
+ }
- Matcher matcher = DATA_SEPARATOR_PATTERN.matcher(key);
- if (matcher.find()) {
- int data = matcher.start();
- key = key.substring(0, data);
- }
+ return getResource(key);
+ }
- return getResource(key);
- }
+ public Object getResourceDataForKey(String key) {
+ Object data = null;
+ String dataString = null;
+ Matcher matcher = DATA_SEPARATOR_PATTERN.matcher(key);
+ if (matcher.find()) {
+ if (log.isDebugEnabled()) {
+ log.debug(Messages.getMessage(
+ Messages.RESTORE_DATA_FROM_RESOURCE_URI_INFO, key,
+ dataString));
+ }
+ int dataStart = matcher.end();
+ dataString = key.substring(dataStart);
+ byte[] objectArray = null;
+ byte[] dataArray;
+ try {
+ dataArray = dataString.getBytes("ISO-8859-1");
+ objectArray = decrypt(dataArray);
+ } catch (UnsupportedEncodingException e1) {
+ // default encoding always presented.
+ }
+ if ("B".equals(matcher.group(1))) {
+ data = objectArray;
+ } else {
+ try {
+ ObjectInputStream in = new ObjectInputStream(
+ new ByteArrayInputStream(objectArray));
+ data = in.readObject();
+ } catch (StreamCorruptedException e) {
+ log.error(Messages
+ .getMessage(Messages.STREAM_CORRUPTED_ERROR), e);
+ } catch (IOException e) {
+ log.error(Messages
+ .getMessage(Messages.DESERIALIZE_DATA_INPUT_ERROR),
+ e);
+ } catch (ClassNotFoundException e) {
+ log
+ .error(
+ Messages
+ .getMessage(Messages.DATA_CLASS_NOT_FOUND_ERROR),
+ e);
+ }
+ }
+ }
- public Object getResourceDataForKey(String key) {
- Object data = null;
- String dataString = null;
- boolean serialized = true;
- Matcher matcher = DATA_SEPARATOR_PATTERN.matcher(key);
- if (matcher.find()) {
- int dataStart = matcher.end();
- dataString = key.substring(dataStart);
- if ("B".equals(matcher.group(1))) {
- serialized = false;
- }
- }
+ return data;
+ }
- if (log.isDebugEnabled()) {
- log.debug(Messages.getMessage(
- Messages.RESTORE_DATA_FROM_RESOURCE_URI_INFO, key,
- dataString));
- }
- if (dataString != null) {
- // dataString =
- // dataString.substring(dataStart+ResourceServlet.DATA_PARAMETER.length()+1);
- byte[] objectArray = null;
- try {
- byte[] dataArray = dataString.getBytes("ISO-8859-1");
- objectArray = decrypt(dataArray);
+ public InternetResource getResource(String path)
+ throws ResourceNotFoundException {
- if (serialized) {
- ObjectInputStream in = new ObjectInputStream(
- new ByteArrayInputStream(objectArray));
- data = in.readObject();
- } else {
- data = objectArray;
- }
- } catch (StreamCorruptedException e) {
- log.error(Messages
- .getMessage(Messages.STREAM_CORRUPTED_ERROR), e);
- } catch (IOException e) {
- log.error(Messages
- .getMessage(Messages.DESERIALIZE_DATA_INPUT_ERROR), e);
- } catch (ClassNotFoundException e) {
- log.error(Messages
- .getMessage(Messages.DATA_CLASS_NOT_FOUND_ERROR), e);
- }
- }
- return data;
- }
+ InternetResource internetResource = (InternetResource) resources
+ .get(path);
+ if (null == internetResource) {
+ throw new ResourceNotFoundException("Resource not registered : "
+ + path);
+ } else {
+ return internetResource;
+ }
+ }
- public InternetResource getResource(String path)
- throws ResourceNotFoundException {
+ public void addResource(InternetResource resource) {
+ resources.put(resource.getKey(), resource);
+ ResourceRenderer renderer = resource.getRenderer(null);
+ if (renderer == null) {
+ setRenderer(resource, resource.getKey());
+ }
+ }
- InternetResource internetResource = (InternetResource) resources
- .get(path);
- if (null == internetResource) {
- throw new ResourceNotFoundException("Resource not registered : "
- + path);
- } else {
- return internetResource;
+ public void addResource(String key, InternetResource resource) {
+ resources.put(key, resource);
+ resource.setKey(key);
+ // TODO - set renderer ?
}
- }
- public void addResource(InternetResource resource) {
- resources.put(resource.getKey(), resource);
- ResourceRenderer renderer = resource.getRenderer(null);
- if (renderer == null) {
- setRenderer(resource, resource.getKey());
- }
- }
+ // public String getFacesResourceKey(HttpServletRequest request) {
+ // return getWebXml(context).getFacesResourceKey(request);
+ // }
- public void addResource(String key, InternetResource resource) {
- resources.put(key, resource);
- resource.setKey(key);
- // TODO - set renderer ?
- }
+ public String getFacesResourceURL(FacesContext context, String Url) {
+ return getWebXml(context).getFacesResourceURL(context, Url);
+ }
-// public String getFacesResourceKey(HttpServletRequest request) {
-// return getWebXml(context).getFacesResourceKey(request);
-// }
+ /**
+ * Build resource for link to static context in webapp.
+ *
+ * @param path
+ * @return
+ * @throws FacesException
+ */
+ protected InternetResource createStaticResource(String path)
+ throws ResourceNotFoundException, FacesException {
+ FacesContext context = FacesContext.getCurrentInstance();
+ if (null != context) {
+ if (context.getExternalContext().getContext() instanceof ServletContext) {
+ ServletContext servletContext = (ServletContext) context
+ .getExternalContext().getContext();
+ InputStream in = servletContext.getResourceAsStream(path);
+ if (null != in) {
+ InternetResourceBase res = new StaticResource(path);
+ setRenderer(res, path);
+ res.setLastModified(new Date(getStartTime()));
+ addResource(path, res);
+ try {
+ in.close();
+ } catch (IOException e) {
+ }
+ return res;
+ }
+ }
+ }
+ throw new ResourceNotFoundException(Messages.getMessage(
+ Messages.STATIC_RESOURCE_NOT_FOUND_ERROR, path));
+ }
- public String getFacesResourceURL(FacesContext context, String Url) {
- return getWebXml(context).getFacesResourceURL(context, Url);
- }
+ private void setRenderer(InternetResource res, String path)
+ throws FacesException {
+ int lastPoint = path.lastIndexOf('.');
+ if (lastPoint > 0) {
+ String ext = path.substring(lastPoint);
+ ResourceRenderer resourceRenderer = (ResourceRenderer) renderers
+ .get(ext);
+ if (null != resourceRenderer) {
+ res.setRenderer(resourceRenderer);
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug(Messages.getMessage(
+ Messages.NO_RESOURCE_REGISTERED_ERROR_2, path,
+ renderers.keySet()));
+ }
- /**
- * Build resource for link to static context in webapp.
- *
- * @param path
- * @return
- * @throws FacesException
- */
- protected InternetResource createStaticResource(String path)
- throws ResourceNotFoundException, FacesException {
- FacesContext context = FacesContext.getCurrentInstance();
- if (null != context) {
- if (context.getExternalContext().getContext() instanceof ServletContext) {
- ServletContext servletContext = (ServletContext) context
- .getExternalContext().getContext();
- InputStream in = servletContext.getResourceAsStream(path);
- if (null != in) {
- InternetResourceBase res = new StaticResource(path);
- setRenderer(res, path);
- res.setLastModified(new Date(getStartTime()));
- addResource(path, res);
- try {
- in.close();
- } catch (IOException e) {
- }
- return res;
+ // String mimeType = servletContext.getMimeType(path);
+ res.setRenderer(defaultRenderer);
+ }
}
- }
}
- throw new ResourceNotFoundException(Messages.getMessage(
- Messages.STATIC_RESOURCE_NOT_FOUND_ERROR, path));
- }
- private void setRenderer(InternetResource res, String path)
- throws FacesException {
- int lastPoint = path.lastIndexOf('.');
- if (lastPoint > 0) {
- String ext = path.substring(lastPoint);
- ResourceRenderer resourceRenderer = (ResourceRenderer) renderers
- .get(ext);
- if (null != resourceRenderer) {
- res.setRenderer(resourceRenderer);
- } else {
- if (log.isDebugEnabled()) {
- log.debug(Messages.getMessage(
- Messages.NO_RESOURCE_REGISTERED_ERROR_2, path,
- renderers.keySet()));
+ /**
+ * Create resurce to send from classpath relative to base class.
+ *
+ * @param base
+ * @param path
+ * @return
+ * @throws FacesException
+ */
+ protected InternetResource createJarResource(Object base, String path)
+ throws ResourceNotFoundException, FacesException {
+ String key = buildKey(base, path);
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ if (null != loader.getResource(key)) {
+ JarResource res = new JarResource(key);
+ setRenderer(res, path);
+ res.setLastModified(new Date(getStartTime()));
+ addResource(key, res);
+ return res;
+ } else {
+ throw new ResourceNotFoundException(Messages.getMessage(
+ Messages.NO_RESOURCE_EXISTS_ERROR, key));
}
- // String mimeType = servletContext.getMimeType(path);
- res.setRenderer(defaultRenderer);
- }
}
- }
- /**
- * Create resurce to send from classpath relative to base class.
- *
- * @param base
- * @param path
- * @return
- * @throws FacesException
- */
- protected InternetResource createJarResource(Object base, String path)
- throws ResourceNotFoundException, FacesException {
- String key = buildKey(base, path);
- ClassLoader loader = Thread.currentThread().getContextClassLoader();
- if (null != loader.getResource(key)) {
- JarResource res = new JarResource(key);
- setRenderer(res, path);
- res.setLastModified(new Date(getStartTime()));
- addResource(key, res);
- return res;
- } else {
- throw new ResourceNotFoundException(Messages.getMessage(
- Messages.NO_RESOURCE_EXISTS_ERROR, key));
+ /**
+ * Create resource by instatiate given class.
+ *
+ * @param path
+ * @param instatiate
+ * @return
+ */
+ protected InternetResource createDynamicResource(String path,
+ Class instatiate) throws ResourceNotFoundException {
+ if (InternetResource.class.isAssignableFrom(instatiate)) {
+ InternetResource resource;
+ try {
+ resource = (InternetResource) instatiate.newInstance();
+ addResource(path, resource);
+ } catch (Exception e) {
+ String message = Messages.getMessage(
+ Messages.INSTANTIATE_RESOURCE_ERROR, instatiate
+ .toString());
+ log.error(message, e);
+ throw new ResourceNotFoundException(message, e);
+ }
+ return resource;
+ }
+ throw new FacesException(Messages
+ .getMessage(Messages.INSTANTIATE_CLASS_ERROR));
}
- }
-
- /**
- * Create resource by instatiate given class.
- *
- * @param path
- * @param instatiate
- * @return
- */
- protected InternetResource createDynamicResource(String path,
- Class instatiate) throws ResourceNotFoundException {
- if (InternetResource.class.isAssignableFrom(instatiate)) {
- InternetResource resource;
- try {
- resource = (InternetResource) instatiate.newInstance();
- addResource(path, resource);
- } catch (Exception e) {
- String message = Messages.getMessage(
- Messages.INSTANTIATE_RESOURCE_ERROR, instatiate
- .toString());
- log.error(message, e);
- throw new ResourceNotFoundException(message, e);
- }
- return resource;
+ /**
+ * Create resource by instatiate {@link UserResource} class with given
+ * properties ( or got from cache ).
+ *
+ * @param cacheable
+ * @param session
+ * @param mime
+ * @return
+ * @throws FacesException
+ */
+ public InternetResource createUserResource(boolean cacheable,
+ boolean session, String mime) throws FacesException {
+ String path = getUserResourceKey(cacheable, session, mime);
+ InternetResource userResource;
+ try {
+ userResource = getResource(path);
+ } catch (ResourceNotFoundException e) {
+ userResource = new UserResource(cacheable, session, mime);
+ addResource(path, userResource);
+ }
+ return userResource;
}
- throw new FacesException(Messages
- .getMessage(Messages.INSTANTIATE_CLASS_ERROR));
- }
- /**
- * Create resource by instatiate {@link UserResource} class with given
- * properties ( or got from cache ).
- *
- * @param cacheable
- * @param session
- * @param mime
- * @return
- * @throws FacesException
- */
- public InternetResource createUserResource(boolean cacheable,
- boolean session, String mime) throws FacesException {
- String path = getUserResourceKey(cacheable, session, mime);
- InternetResource userResource;
- try {
- userResource = getResource(path);
- } catch (ResourceNotFoundException e) {
- userResource = new UserResource(cacheable, session, mime);
- addResource(path, userResource);
+ /**
+ * Generate resource key for user-generated resource with given properties.
+ *
+ * @param cacheable
+ * @param session
+ * @param mime
+ * @return
+ */
+ private String getUserResourceKey(boolean cacheable, boolean session,
+ String mime) {
+ StringBuffer pathBuffer = new StringBuffer(UserResource.class.getName());
+ pathBuffer.append(cacheable ? "/c" : "/n");
+ pathBuffer.append(session ? "/s" : "/n");
+ if (null != mime) {
+ pathBuffer.append('/').append(mime.hashCode());
+ }
+ String path = pathBuffer.toString();
+ return path;
}
- return userResource;
- }
- /**
- * Generate resource key for user-generated resource with given
- * properties.
- *
- * @param cacheable
- * @param session
- * @param mime
- * @return
- */
- private String getUserResourceKey(boolean cacheable, boolean session,
- String mime) {
- StringBuffer pathBuffer = new StringBuffer(UserResource.class.getName());
- pathBuffer.append(cacheable ? "/c" : "/n");
- pathBuffer.append(session ? "/s" : "/n");
- if (null != mime) {
- pathBuffer.append('/').append(mime.hashCode());
+ /**
+ * @return Returns the startTime for application.
+ */
+ public long getStartTime() {
+ return _startTime;
}
- String path = pathBuffer.toString();
- return path;
- }
- /**
- * @return Returns the startTime for application.
- */
- public long getStartTime() {
- return _startTime;
- }
-
- protected byte[] encrypt(byte[] src) {
- try {
- Deflater compressor = new Deflater(Deflater.BEST_SPEED);
- byte[] compressed = new byte[src.length + 100];
- compressor.setInput(src);
- compressor.finish();
- int totalOut = compressor.deflate(compressed);
- byte[] zipsrc = new byte[totalOut];
- System.arraycopy(compressed, 0, zipsrc, 0, totalOut);
- compressor.end();
- return codec.encode(zipsrc);
- } catch (Exception e) {
- throw new FacesException("Error encode resource data", e);
+ protected byte[] encrypt(byte[] src) {
+ try {
+ Deflater compressor = new Deflater(Deflater.BEST_SPEED);
+ byte[] compressed = new byte[src.length + 100];
+ compressor.setInput(src);
+ compressor.finish();
+ int totalOut = compressor.deflate(compressed);
+ byte[] zipsrc = new byte[totalOut];
+ System.arraycopy(compressed, 0, zipsrc, 0, totalOut);
+ compressor.end();
+ return codec.encode(zipsrc);
+ } catch (Exception e) {
+ throw new FacesException("Error encode resource data", e);
+ }
}
- }
- protected byte[] decrypt(byte[] src) {
- try {
- byte[] zipsrc = codec.decode(src);
- Inflater decompressor = new Inflater();
- byte[] uncompressed = new byte[zipsrc.length * 5];
- decompressor.setInput(zipsrc);
- int totalOut = decompressor.inflate(uncompressed);
- byte[] out = new byte[totalOut];
- System.arraycopy(uncompressed, 0, out, 0, totalOut);
- decompressor.end();
- return out;
- } catch (Exception e) {
- throw new FacesException("Error decode resource data", e);
+ protected byte[] decrypt(byte[] src) {
+ try {
+ byte[] zipsrc = codec.decode(src);
+ Inflater decompressor = new Inflater();
+ byte[] uncompressed = new byte[zipsrc.length * 5];
+ decompressor.setInput(zipsrc);
+ int totalOut = decompressor.inflate(uncompressed);
+ byte[] out = new byte[totalOut];
+ System.arraycopy(uncompressed, 0, out, 0, totalOut);
+ decompressor.end();
+ return out;
+ } catch (Exception e) {
+ throw new FacesException("Error decode resource data", e);
+ }
}
- }
}
Modified: trunk/framework/impl/src/main/java/org/richfaces/renderkit/html/images/SliderArrowImage.java
===================================================================
--- trunk/framework/impl/src/main/java/org/richfaces/renderkit/html/images/SliderArrowImage.java 2007-08-20 22:28:02 UTC (rev 2359)
+++ trunk/framework/impl/src/main/java/org/richfaces/renderkit/html/images/SliderArrowImage.java 2007-08-20 22:49:46 UTC (rev 2360)
@@ -21,6 +21,9 @@
package org.richfaces.renderkit.html.images;
+import java.nio.ByteBuffer;
+import java.nio.IntBuffer;
+
import javax.faces.context.FacesContext;
import org.ajax4jsf.util.HtmlColor;
@@ -38,7 +41,16 @@
tmp = (String) defaultSkin.getParameter(context, skinParameter);
}
int intValue = HtmlColor.decode(tmp ==null? "#000000":tmp).getRGB();
- return new Integer(intValue);
+ // Serialize data as byte[]
+ ByteBuffer buff = ByteBuffer.allocate(1*4);
+ IntBuffer intBuffer = buff.asIntBuffer();
+ intBuffer.put(intValue);
+ return buff.array();
}
+ protected Object deserializeData(byte[] objectArray) {
+ // restore color value from a byte[] array.
+ int i = ByteBuffer.wrap(objectArray).asIntBuffer().get();
+ return new Integer(i);
+ }
}
\ No newline at end of file
More information about the richfaces-svn-commits
mailing list