You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by jw...@apache.org on 2007/03/20 16:43:51 UTC
svn commit: r520469 - in
/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal:
skin/SkinStyleSheetParserUtils.java style/cache/FileSystemStyleCache.java
style/xml/parse/StyleSheetDocumentParser.java
Author: jwaldman
Date: Tue Mar 20 09:43:50 2007
New Revision: 520469
URL: http://svn.apache.org/viewvc?view=rev&rev=520469
Log:
ADFFACES-422 Shouldn't have to stop/start the server if the skin's css file has changed
SkinStyleSheetParserUtils.java & StyleSheetDocumentParser.java now check for URL-based files for timestamps to
put in the StyleSheetDocument.
FileSystemStyleCache.java has comment changes only.
Modified:
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinStyleSheetParserUtils.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/cache/FileSystemStyleCache.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/xml/parse/StyleSheetDocumentParser.java
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinStyleSheetParserUtils.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinStyleSheetParserUtils.java?view=diff&rev=520469&r1=520468&r2=520469
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinStyleSheetParserUtils.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/SkinStyleSheetParserUtils.java Tue Mar 20 09:43:50 2007
@@ -25,6 +25,10 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
+
+import java.net.URL;
+import java.net.URLConnection;
+
import java.util.ArrayList;
import java.util.List;
import java.util.HashSet;
@@ -99,6 +103,12 @@
try
{
+ // Store a resolver relative to the file we're about to parse
+ // Store the inputStreamProvider on the context;
+ // this will be used to get the document's timestamp later on
+ XMLUtils.setResolver(context, resolver.getResolver(sourceName));
+ XMLUtils.setInputStreamProvider(context, provider);
+
// PARSE!
// create a SkinStyleSheetNode
// (contains a namespaceMap and a List of SkinSelectorPropertiesNodes
@@ -749,10 +759,24 @@
if (provider != null)
{
- // And this only works if we are using a File-based InputStream
+ // And this only works if we are using a File-based or URL-based InputStream
Object identifier = provider.getIdentifier();
if (identifier instanceof File)
timestamp = ((File)identifier).lastModified();
+ else if (identifier instanceof URL)
+ {
+ try
+ {
+ URLConnection connection = ((URL)identifier).openConnection();
+ timestamp = connection.getLastModified();
+ }
+ catch (IOException io)
+ {
+ _LOG.warning("Could not get the stylesheet document's timestamp because we couldn't " +
+ "open the connection.");
+ }
+
+ }
}
return timestamp;
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/cache/FileSystemStyleCache.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/cache/FileSystemStyleCache.java?view=diff&rev=520469&r1=520468&r2=520469
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/cache/FileSystemStyleCache.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/cache/FileSystemStyleCache.java Tue Mar 20 09:43:50 2007
@@ -320,8 +320,8 @@
// here, we know they will always be available to other code.
_initResolver();
- // If checking for modified files, then check to see if the XSS
- // doc has been modified. If so, we dump our in-memory style cache.
+ // If checking for modified files, then check to see if the XSS or CSS
+ // document has been modified. If so, we dump our in-memory style cache.
if (checkModified && hasSourceDocumentChanged(context))
{
_cache = null;
@@ -592,7 +592,6 @@
String name = outputFile.getName();
// If the output file already exists, check the last modified time.
- // This isn't really
if (outputFile.exists())
{
if (checkModified)
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/xml/parse/StyleSheetDocumentParser.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/xml/parse/StyleSheetDocumentParser.java?view=diff&rev=520469&r1=520468&r2=520469
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/xml/parse/StyleSheetDocumentParser.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/xml/parse/StyleSheetDocumentParser.java Tue Mar 20 09:43:50 2007
@@ -21,6 +21,9 @@
import java.io.File;
import java.io.IOException;
+import java.net.URL;
+import java.net.URLConnection;
+
import java.util.Map;
import java.util.Hashtable;
import java.util.Vector;
@@ -502,10 +505,26 @@
if (provider != null)
{
- // And this only works if we are using a File-based InputStream
+ // And this only works if we are using a File-based or URL-based InputStream
Object identifier = provider.getIdentifier();
if (identifier instanceof File)
+ {
timestamp = ((File)identifier).lastModified();
+ }
+ else if (identifier instanceof URL)
+ {
+ try
+ {
+ URLConnection connection = ((URL)identifier).openConnection();
+ timestamp = connection.getLastModified();
+ }
+ catch (IOException io)
+ {
+ _LOG.warning("Could not get the stylesheet document's timestamp because we couldn't " +
+ "open the connection.");
+ }
+
+ }
}
// Merge in timestamps of imported style sheets