Author: nbelaevski
Date: 2009-07-17 10:13:16 -0400 (Fri, 17 Jul 2009)
New Revision: 14951
Added:
root/framework/trunk/impl/src/main/resources/META-INF/org.richfaces.resource.TestResource2.resource.properties
root/framework/trunk/impl/src/test/resources/META-INF/org.richfaces.resource.CacheableResourceImpl.resource.properties
root/framework/trunk/impl/src/test/resources/META-INF/org.richfaces.resource.MarkerFileResourceImpl.resource.properties
root/framework/trunk/impl/src/test/resources/META-INF/org.richfaces.resource.NonCacheableResourceImpl.resource.properties
root/framework/trunk/impl/src/test/resources/META-INF/org.richfaces.resource.StateHolderResourceImpl.resource.properties
root/framework/trunk/impl/src/test/resources/META-INF/org.richfaces.resource.VersionedResourceImpl.resource.properties
Removed:
root/framework/trunk/impl/src/main/resources/org/richfaces/resource/
root/framework/trunk/impl/src/test/resources/org/richfaces/resource/
Modified:
root/framework/trunk/impl/pom.xml
root/framework/trunk/impl/src/main/java/org/richfaces/resource/AbstractBaseResource.java
root/framework/trunk/impl/src/main/java/org/richfaces/resource/AbstractCacheableResource.java
root/framework/trunk/impl/src/main/java/org/richfaces/resource/CachedResourceImpl.java
root/framework/trunk/impl/src/main/java/org/richfaces/resource/ResourceHandlerImpl.java
root/framework/trunk/impl/src/main/java/org/richfaces/util/RichfacesLogger.java
root/framework/trunk/impl/src/test/java/org/ajax4jsf/cache/BaseCacheTest.java
root/framework/trunk/impl/src/test/java/org/richfaces/resource/CachedResourceImplTest.java
root/framework/trunk/impl/src/test/java/org/richfaces/resource/ResourceHandlerImplTest.java
root/framework/trunk/test-base/
root/framework/trunk/version-matrix/pom.xml
Log:
Resources:
- basic logging added
- SLF4J configuration updated
- marker files handling improved
Modified: root/framework/trunk/impl/pom.xml
===================================================================
--- root/framework/trunk/impl/pom.xml 2009-07-17 14:12:45 UTC (rev 14950)
+++ root/framework/trunk/impl/pom.xml 2009-07-17 14:13:16 UTC (rev 14951)
@@ -169,10 +169,15 @@
<artifactId>easymockclassextension</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-jdk14</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
Modified:
root/framework/trunk/impl/src/main/java/org/richfaces/resource/AbstractBaseResource.java
===================================================================
---
root/framework/trunk/impl/src/main/java/org/richfaces/resource/AbstractBaseResource.java 2009-07-17
14:12:45 UTC (rev 14950)
+++
root/framework/trunk/impl/src/main/java/org/richfaces/resource/AbstractBaseResource.java 2009-07-17
14:13:16 UTC (rev 14951)
@@ -27,9 +27,11 @@
import java.net.URL;
import java.net.URLConnection;
import java.net.URLStreamHandler;
+import java.text.MessageFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
+import java.util.Map.Entry;
import javax.faces.FacesException;
import javax.faces.component.StateHolder;
@@ -37,7 +39,9 @@
import org.ajax4jsf.resource.InternetResource;
import org.ajax4jsf.resource.ResourceContext;
+import org.richfaces.util.RichfacesLogger;
import org.richfaces.util.Util;
+import org.slf4j.Logger;
/**
* @author Nick Belaevski
@@ -45,6 +49,8 @@
*/
public abstract class AbstractBaseResource extends AbstractCacheableResource implements
VersionedResource {
+ private static final Logger LOGGER = RichfacesLogger.RESOURCE.getLogger();
+
public static final String URL_PROTOCOL = "jsfresource";
private boolean cacheable = true;
@@ -156,6 +162,12 @@
resourceCodec.encodeResource(resourceName, resourceData, resourceVersion);
resourceUri = Util.encodeResourceURL(context, resourceUri);
+
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug(MessageFormat.format("Request path for {0} resource is: {1}",
+ String.valueOf(resourceName), String.valueOf(resourceUri)));
+ }
+
return resourceUri;
}
@@ -237,6 +249,14 @@
}
headers.put("Date", Util.formatHttpDate(getCurrentTime()));
+
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("Created set of response headers");
+ //TODO - security - can we log header values?
+ for (Entry<String, String> entry : headers.entrySet()) {
+ LOGGER.debug(MessageFormat.format("\t{0}={1}", entry.getKey(),
entry.getValue()));
+ }
+ }
}
return headers;
Modified:
root/framework/trunk/impl/src/main/java/org/richfaces/resource/AbstractCacheableResource.java
===================================================================
---
root/framework/trunk/impl/src/main/java/org/richfaces/resource/AbstractCacheableResource.java 2009-07-17
14:12:45 UTC (rev 14950)
+++
root/framework/trunk/impl/src/main/java/org/richfaces/resource/AbstractCacheableResource.java 2009-07-17
14:13:16 UTC (rev 14951)
@@ -27,7 +27,9 @@
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
+import org.richfaces.util.RichfacesLogger;
import org.richfaces.util.Util;
+import org.slf4j.Logger;
/**
* @author Nick Belaevski
@@ -35,6 +37,8 @@
*/
public abstract class AbstractCacheableResource extends Resource {
+ private static final Logger LOGGER = RichfacesLogger.RESOURCE.getLogger();
+
protected abstract Date getLastModified(FacesContext context);
public abstract boolean isCacheable(FacesContext context);
@@ -87,20 +91,34 @@
@Override
public boolean userAgentNeedsUpdate(FacesContext context) {
if (!isCacheable(context)) {
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("User agent cache check: resource is not cacheable");
+ }
+
return true;
}
Boolean matchesEntityTag = matchesEntityTag(context);
if (Boolean.FALSE.equals(matchesEntityTag)) {
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("User agent cache check: entity tags don't match");
+ }
+
return true;
}
Boolean matchesLastModified = matchesLastModified(context);
if (Boolean.FALSE.equals(matchesLastModified)) {
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("User agent cache check: resource was modified since the last
request");
+ }
return true;
}
if (matchesLastModified == null && matchesEntityTag == null) {
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("User agent cache check: no cache information was provided in
request");
+ }
return true;
}
Modified:
root/framework/trunk/impl/src/main/java/org/richfaces/resource/CachedResourceImpl.java
===================================================================
---
root/framework/trunk/impl/src/main/java/org/richfaces/resource/CachedResourceImpl.java 2009-07-17
14:12:45 UTC (rev 14950)
+++
root/framework/trunk/impl/src/main/java/org/richfaces/resource/CachedResourceImpl.java 2009-07-17
14:13:16 UTC (rev 14951)
@@ -37,7 +37,9 @@
import org.ajax4jsf.io.ByteBuffer;
import org.ajax4jsf.io.FastBufferInputStream;
import org.ajax4jsf.io.FastBufferOutputStream;
+import org.richfaces.util.RichfacesLogger;
import org.richfaces.util.Util;
+import org.slf4j.Logger;
/**
* @author Nick Belaevski
@@ -48,6 +50,8 @@
//[0..1]
private static final float CACHE_EXPIRATION_COEFFICIENT = 0.9f;
+ private static final Logger LOGGER = RichfacesLogger.RESOURCE.getLogger();
+
private static final int SMAX_AGE_GROUP = 1;
private static final int MAX_AGE_VALUE_GROUP = 2;
@@ -128,20 +132,29 @@
}
private ByteBuffer readContent(InputStream is) throws IOException {
+ if (is == null) {
+ throw new NullPointerException("Resource input stream is null");
+ }
+
FastBufferOutputStream os = new FastBufferOutputStream();
try {
Util.copyStreamContent(is, os);
} finally {
- if (is != null) {
- try {
- is.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ try {
+ is.close();
+ } catch (IOException e) {
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug(e.getMessage(), e);
}
}
-
- os.close();
+
+ try {
+ os.close();
+ } catch (IOException e) {
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug(e.getMessage(), e);
+ }
+ }
}
ByteBuffer buffer = os.getFirstBuffer();
@@ -149,18 +162,13 @@
return buffer;
}
- public void initialize(Resource resource) {
+ public void initialize(Resource resource) throws IOException {
setResourceName(resource.getResourceName());
setContentType(resource.getContentType());
this.headers = resource.getResponseHeaders();
initializeFromHeaders();
- try {
- this.content = readContent(resource.getInputStream());
- } catch (IOException e) {
- e.printStackTrace();
- // TODO: handle exception
- }
+ this.content = readContent(resource.getInputStream());
}
@Override
Modified:
root/framework/trunk/impl/src/main/java/org/richfaces/resource/ResourceHandlerImpl.java
===================================================================
---
root/framework/trunk/impl/src/main/java/org/richfaces/resource/ResourceHandlerImpl.java 2009-07-17
14:12:45 UTC (rev 14950)
+++
root/framework/trunk/impl/src/main/java/org/richfaces/resource/ResourceHandlerImpl.java 2009-07-17
14:13:16 UTC (rev 14951)
@@ -25,6 +25,8 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
+import java.text.MessageFormat;
+import java.util.Date;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
@@ -40,8 +42,10 @@
import org.ajax4jsf.cache.Cache;
import org.ajax4jsf.cache.CacheFactory;
import org.ajax4jsf.cache.CacheManager;
+import org.richfaces.util.RichfacesLogger;
import org.richfaces.util.Util;
import org.richfaces.util.RequestStateManager.BooleanRequestStateVariable;
+import org.slf4j.Logger;
/**
* @author Nick Belaevski
@@ -51,6 +55,8 @@
public static final String RICHFACES_RESOURCE_IDENTIFIER = "/rfRes/";
+ private static final Logger LOGGER = RichfacesLogger.RESOURCE.getLogger();
+
private ResourceHandler defaultHandler;
private Cache cache;
@@ -58,6 +64,11 @@
public ResourceHandlerImpl(ResourceHandler defaultHandler) {
this.defaultHandler = defaultHandler;
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug(MessageFormat.format("Instance of {0} resource handler
created",
+ getClass().getName()));
+ }
+
initializeCache();
}
@@ -81,9 +92,9 @@
Object oldCodec = applicationMap.put(RESOURCE_CODEC_ATTRIBUTE_NAME, codec);
if (oldCodec != null && codec != null && !oldCodec.equals(codec)
&&
- ProjectStage.Development.equals(facesContext.getApplication().getProjectStage())) {
+ facesContext.isProjectStage(ProjectStage.Development)) {
- //TODO log "codec should be typically set once per application lifetime"
+ LOGGER.warn("Resource codec should be typically set once per application
lifetime");
}
}
@@ -113,10 +124,16 @@
protected boolean isThisHandlerResourceRequest(FacesContext context) {
Boolean resourceRequest = BooleanRequestStateVariable.RESOURCE_REQUEST.get(context);
if (resourceRequest == null) {
- String resourceName = getResourceKey(context);
+ String resourceKey = getResourceKey(context);
//TODO handle exclusions
- resourceRequest = (resourceName != null && resourceName.length() > 0) ?
Boolean.TRUE : Boolean.FALSE;
+ resourceRequest = (resourceKey != null && resourceKey.length() > 0) ?
Boolean.TRUE : Boolean.FALSE;
BooleanRequestStateVariable.RESOURCE_REQUEST.set(context, resourceRequest);
+
+ if (LOGGER.isDebugEnabled()) {
+ if (Boolean.TRUE.equals(resourceRequest)) {
+ LOGGER.debug(MessageFormat.format("Resource request detected: {0}",
resourceKey));
+ }
+ }
}
return resourceRequest.booleanValue();
@@ -126,47 +143,97 @@
return isThisHandlerResourceRequest(context) ||
defaultHandler.isResourceRequest(context);
}
+ private Resource lookupInCache(FacesContext context, String resourceKey) {
+ Resource resource = (Resource) cache.get(resourceKey);
+
+ if (LOGGER.isDebugEnabled()) {
+ if (resource == null) {
+ LOGGER.debug("Resource was not located in cache");
+ } else {
+ LOGGER.debug("Resource was located in cache");
+ }
+ }
+
+ return resource;
+ }
+
private void sendNotModified(FacesContext context) {
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("User agent has actual resource copy - sending 304 status
code");
+ }
+
//TODO send cacheable resource headers (ETag + LastModified)?
context.getExternalContext().setResponseStatus(HttpServletResponse.SC_NOT_MODIFIED);
}
- private void sendNotFound(FacesContext context) {
- context.getExternalContext().setResponseStatus(HttpServletResponse.SC_NOT_FOUND);
+ private void logResourceProblem(FacesContext context, Throwable throwable, String
messagePattern, Object... arguments) {
+ boolean isProductionStage = context.isProjectStage(ProjectStage.Production);
+ if (LOGGER.isWarnEnabled() || (!isProductionStage && LOGGER.isInfoEnabled()))
{
+ String formattedMessage = MessageFormat.format(messagePattern, arguments);
+
+ if (throwable != null) {
+ LOGGER.warn(formattedMessage, throwable);
+ } else {
+ if (isProductionStage) {
+ LOGGER.info(formattedMessage);
+ } else {
+ LOGGER.warn(formattedMessage);
+ }
+ }
+ }
}
+ private void logMissingResource(FacesContext context, String resourceData) {
+ logResourceProblem(context, null, "Resource {0} was not found",
resourceData);
+ }
+
+ private void sendResourceNotFound(FacesContext context) {
+ context.getExternalContext().setResponseStatus(HttpServletResponse.SC_NOT_FOUND);
+ }
+
public void handleResourceRequest(FacesContext context) throws IOException {
if (isThisHandlerResourceRequest(context)) {
String resourceKey = getResourceKey(context);
- if (resourceKey == null || resourceKey.length() == 0) {
- sendNotFound(context);
- return;
- }
+ assert (resourceKey != null && resourceKey.length() != 0);
- Resource resource = (Resource) cache.get(resourceKey);
+ Resource resource = lookupInCache(context, resourceKey);
if (resource == null) {
ResourceCodec resourceCodec = ResourceHandlerImpl.getResourceCodec(context);
String resourceName = resourceCodec.decodeResourceName(resourceKey);
if (resourceName == null || resourceName.length() == 0) {
- sendNotFound(context);
+ logMissingResource(context, resourceKey);
+ sendResourceNotFound(context);
return;
}
- resource = createHandlerDependentResource(resourceName, null, null);
+ if (isResourceExists(resourceName)) {
+ resource = createHandlerDependentResource(resourceName);
+ }
+
if (resource == null) {
- sendNotFound(context);
+ logMissingResource(context, resourceName);
+ sendResourceNotFound(context);
return;
}
if (resource instanceof VersionedResource) {
VersionedResource versionedResource = (VersionedResource) resource;
- String version = versionedResource.getVersion();
+ String existingVersion = versionedResource.getVersion();
String requestedVersion = resourceCodec.decodeResourceVersion(resourceKey);
- if (version != null && requestedVersion != null &&
- !version.equals(requestedVersion)) {
+
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug(MessageFormat.format("Client requested {0} version of resource,
server has {1} version",
+ String.valueOf(requestedVersion), String.valueOf(existingVersion)));
+ }
+
+ if (existingVersion != null && requestedVersion != null &&
+ !existingVersion.equals(requestedVersion)) {
- sendNotFound(context);
+ logResourceProblem(context, null, "Resource {0} of version {1} was not
found",
+ resourceName, requestedVersion);
+
+ sendResourceNotFound(context);
return;
}
}
@@ -174,11 +241,20 @@
if (resource instanceof StateHolder) {
StateHolder stateHolder = (StateHolder) resource;
Object decodedData = resourceCodec.decodeResourceData(resourceKey);
+
+ if (LOGGER.isDebugEnabled()) {
+ if (decodedData != null) {
+ LOGGER.debug("Resource state data succesfully decoded");
+ } else {
+ LOGGER.debug("Resource state data decoded as null");
+ }
+ }
+
if (decodedData != null) {
stateHolder.restoreState(context, decodedData);
+ } else {
+ //resource was transient and didn't store data
}
- } else {
- //TODO log
}
if (resource instanceof AbstractCacheableResource) {
@@ -192,18 +268,28 @@
//someone may provided this resource for us
//while we were reading it, check once again
- resource = (Resource) cache.get(resourceKey);
+ resource = lookupInCache(context, resourceKey);
if (resource == null) {
- cache.put(resourceKey, cachedResource, cachedResource.getExpired(context));
+ Date cacheExpirationDate = cachedResource.getExpired(context);
+
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug(new MessageFormat("Storing {0} resource in cache until
{1,date,dd MMM yyyy HH:mm:ss zzz}",
+ Locale.US).format(new Object[]{resourceKey, cacheExpirationDate}));
+ }
+
+ cache.put(resourceKey, cachedResource, cacheExpirationDate);
resource = cachedResource;
}
}
}
}
- ExternalContext externalContext = context.getExternalContext();
-
if (resource.userAgentNeedsUpdate(context)) {
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("User agent needs resource update, encoding resource");
+ }
+
+ ExternalContext externalContext = context.getExternalContext();
Map<String, String> headers = resource.getResponseHeaders();
for (Entry<String, String> headerEntry : headers.entrySet()) {
String headerName = headerEntry.getKey();
@@ -226,6 +312,7 @@
//TODO null content type?
externalContext.setResponseContentType(resource.getContentType());
+ //TODO 'HEAD' HTTP method resources - ?
//TODO setup output buffer size according to configuration parameter
InputStream is = resource.getInputStream();
OutputStream os = externalContext.getResponseOutputStream();
@@ -237,48 +324,77 @@
try {
is.close();
} catch (IOException e) {
- // TODO: handle exception
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug(e.getMessage(), e);
+ }
}
}
//TODO dispose resource
}
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("Resource succesfully encoded");
+ }
+
} else {
sendNotModified(context);
}
} else {
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("Passing request to the next resource handler in chain");
+ }
defaultHandler.handleResourceRequest(context);
}
}
- protected Resource createHandlerDependentResource(String resourceName, String
libraryName,
- String contentType) {
+ protected boolean isResourceExists(String resourceName) {
+ boolean result = false;
+ ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
+ if (contextClassLoader != null) {
+ //TODO resource marker extension name?
+ URL resourceMarkerUrl = contextClassLoader.getResource("META-INF/" +
resourceName + ".resource.properties");
+ result = (resourceMarkerUrl != null);
+
+ if (LOGGER.isDebugEnabled()) {
+ if (result) {
+ LOGGER.debug(MessageFormat.format("Marker file for {0} resource found in
classpath", resourceName));
+ } else {
+ LOGGER.debug(MessageFormat.format("Marker file for {0} resource does not
exist", resourceName));
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Should be called only if {@link #isResourceExists(String)} returns
<code>true</code>
+ * @param resourceName
+ * @return
+ */
+ protected Resource createHandlerDependentResource(String resourceName) {
+
Resource resource = null;
- if (libraryName == null || libraryName.length() == 0) {
- ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
- if (contextClassLoader != null) {
- try {
- //TODO resource marker extension name?
- URL resourceMarkerUrl =
contextClassLoader.getResource(resourceName.replace('.', '/') +
".resource-marker");
- if (resourceMarkerUrl != null) {
- Class<?> resourceClass = Class.forName(resourceName, true,
contextClassLoader);
- if (Resource.class.isAssignableFrom(resourceClass)) {
- resource = (Resource) resourceClass.newInstance();
- resource.setResourceName(resourceName);
- }
+ ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
+ if (contextClassLoader != null) {
+ try {
+ Class<?> resourceClass = Class.forName(resourceName, false,
contextClassLoader);
+ if (Resource.class.isAssignableFrom(resourceClass)) {
+ resource = (Resource) resourceClass.newInstance();
+ resource.setResourceName(resourceName);
+
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug(MessageFormat.format(
+ "Successfully created instance of {0} resource", resourceName));
}
- } catch (ClassNotFoundException e1) {
- // TODO Auto-generated catch block
- } catch (InstantiationException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (IllegalAccessException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
+ } else {
+ throw new ClassCastException(resourceClass.getName());
}
+ } catch (Throwable t) {
+ logResourceProblem(FacesContext.getCurrentInstance(), t,
+ "Error creating resource {0}", resourceName);
}
}
@@ -288,12 +404,17 @@
public Resource createResource(String resourceName, String libraryName,
String contentType) {
- Resource resource = createHandlerDependentResource(resourceName, libraryName,
contentType);
- if (resource == null) {
- resource = defaultHandler.createResource(resourceName, libraryName, contentType);
+ Resource result = null;
+
+ if (resourceName != null && (libraryName == null || libraryName.length() == 0)
+ && isResourceExists(resourceName)) {
+
+ result = createHandlerDependentResource(resourceName);
+ } else {
+ result = defaultHandler.createResource(resourceName, libraryName, contentType);
}
-
- return resource;
+
+ return result;
}
public Resource createResource(String resourceName, String libraryName) {
Modified: root/framework/trunk/impl/src/main/java/org/richfaces/util/RichfacesLogger.java
===================================================================
---
root/framework/trunk/impl/src/main/java/org/richfaces/util/RichfacesLogger.java 2009-07-17
14:12:45 UTC (rev 14950)
+++
root/framework/trunk/impl/src/main/java/org/richfaces/util/RichfacesLogger.java 2009-07-17
14:13:16 UTC (rev 14951)
@@ -10,19 +10,19 @@
*/
public enum RichfacesLogger {
- RESOURCE("resource"),
+ RESOURCE("Resource"),
- RENDERKIT("renderkit"),
+ RENDERKIT("Renderkit"),
- CONFIG("config"),
+ CONFIG("Config"),
- CONNECTION("connection"),
+ CONNECTION("Connection"),
- APPLICATION("application"),
+ APPLICATION("Application"),
- CACHE("cache");
+ CACHE("Cache");
- private static final String LOGGER_NAME_PREFIX = "org.richfaces.logging";
+ private static final String LOGGER_NAME_PREFIX = "org.richfaces.log.";
private String loggerName;
Copied:
root/framework/trunk/impl/src/main/resources/META-INF/org.richfaces.resource.TestResource2.resource.properties
(from rev 14933,
root/framework/trunk/impl/src/main/resources/org/richfaces/resource/TestResource2.resource-marker)
===================================================================
Modified: root/framework/trunk/impl/src/test/java/org/ajax4jsf/cache/BaseCacheTest.java
===================================================================
---
root/framework/trunk/impl/src/test/java/org/ajax4jsf/cache/BaseCacheTest.java 2009-07-17
14:12:45 UTC (rev 14950)
+++
root/framework/trunk/impl/src/test/java/org/ajax4jsf/cache/BaseCacheTest.java 2009-07-17
14:13:16 UTC (rev 14951)
@@ -82,7 +82,9 @@
assertNull(cache.get("a"));
cache.put("a", "value-a", new Date(System.currentTimeMillis() +
3000));
assertEquals("value-a", cache.get("a"));
- Thread.sleep(5000);
+ Thread.sleep(2000);
+ assertEquals("value-a", cache.get("a"));
+ Thread.sleep(2000);
assertNull(cache.get("a"));
}
}
Modified:
root/framework/trunk/impl/src/test/java/org/richfaces/resource/CachedResourceImplTest.java
===================================================================
---
root/framework/trunk/impl/src/test/java/org/richfaces/resource/CachedResourceImplTest.java 2009-07-17
14:12:45 UTC (rev 14950)
+++
root/framework/trunk/impl/src/test/java/org/richfaces/resource/CachedResourceImplTest.java 2009-07-17
14:13:16 UTC (rev 14951)
@@ -129,15 +129,15 @@
}
- private CachedResourceImpl createCachedResource() {
+ private CachedResourceImpl createCachedResource() throws IOException {
return createCachedResource(createTestHeaders());
}
- private CachedResourceImpl createCachedResource(Map<String, String> headers) {
+ private CachedResourceImpl createCachedResource(Map<String, String> headers)
throws IOException {
return createCachedResource(headers, null);
}
- private CachedResourceImpl createCachedResource(Map<String, String> headers,
InputStream stream) {
+ private CachedResourceImpl createCachedResource(Map<String, String> headers,
InputStream stream) throws IOException {
MockHeadersResourceImpl mockResource = new MockHeadersResourceImpl(headers, stream);
CachedResourceImpl cachedResource = new MockCachedResourceImpl();
cachedResource.initialize(mockResource);
Modified:
root/framework/trunk/impl/src/test/java/org/richfaces/resource/ResourceHandlerImplTest.java
===================================================================
---
root/framework/trunk/impl/src/test/java/org/richfaces/resource/ResourceHandlerImplTest.java 2009-07-17
14:12:45 UTC (rev 14950)
+++
root/framework/trunk/impl/src/test/java/org/richfaces/resource/ResourceHandlerImplTest.java 2009-07-17
14:13:16 UTC (rev 14951)
@@ -156,7 +156,7 @@
assertNotNull(Class.forName("org.richfaces.resource.MarkerFileResourceImpl",
true, contextClassLoader));
- assertNotNull(contextClassLoader.getResource("org/richfaces/resource/MarkerFileResourceImpl.resource-marker"));
+ assertNotNull(contextClassLoader.getResource("META-INF/org.richfaces.resource.MarkerFileResourceImpl.resource.properties"));
WebRequestSettings markerFileRequestSettings = new WebRequestSettings(
new
URL("http://localhost/rfRes/org.richfaces.resource.MarkerFileResourceImpl.jsf"));
@@ -165,7 +165,7 @@
assertNotNull(Class.forName("org.richfaces.resource.NoMarkerFileResourceImpl",
true, contextClassLoader));
- assertNull(contextClassLoader.getResource("org/richfaces/resource/NoMarkerFileResourceImpl.resource-marker"));
+ assertNull(contextClassLoader.getResource("META-INF/org.richfaces.resource.NoMarkerFileResourceImpl.resource.properties"));
WebRequestSettings noMarkerFileRequestSettings = new WebRequestSettings(
new
URL("http://localhost/rfRes/org.richfaces.resource.NoMarkerFileResourceImpl.jsf"));
Copied:
root/framework/trunk/impl/src/test/resources/META-INF/org.richfaces.resource.CacheableResourceImpl.resource.properties
(from rev 14933,
root/framework/trunk/impl/src/test/resources/org/richfaces/resource/CacheableResourceImpl.resource-marker)
===================================================================
Copied:
root/framework/trunk/impl/src/test/resources/META-INF/org.richfaces.resource.MarkerFileResourceImpl.resource.properties
(from rev 14933,
root/framework/trunk/impl/src/test/resources/org/richfaces/resource/MarkerFileResourceImpl.resource-marker)
===================================================================
Copied:
root/framework/trunk/impl/src/test/resources/META-INF/org.richfaces.resource.NonCacheableResourceImpl.resource.properties
(from rev 14933,
root/framework/trunk/impl/src/test/resources/org/richfaces/resource/NonCacheableResourceImpl.resource-marker)
===================================================================
Copied:
root/framework/trunk/impl/src/test/resources/META-INF/org.richfaces.resource.StateHolderResourceImpl.resource.properties
(from rev 14933,
root/framework/trunk/impl/src/test/resources/org/richfaces/resource/StateHolderResourceImpl.resource-marker)
===================================================================
Copied:
root/framework/trunk/impl/src/test/resources/META-INF/org.richfaces.resource.VersionedResourceImpl.resource.properties
(from rev 14933,
root/framework/trunk/impl/src/test/resources/org/richfaces/resource/VersionedResourceImpl.resource-marker)
===================================================================
Property changes on: root/framework/trunk/test-base
___________________________________________________________________
Name: svn:ignore
- .project
.checkstyle
target
.metadata
.settings
.classpath
+ .project
.checkstyle
target
.metadata
.settings
.classpath
.clover
Modified: root/framework/trunk/version-matrix/pom.xml
===================================================================
--- root/framework/trunk/version-matrix/pom.xml 2009-07-17 14:12:45 UTC (rev 14950)
+++ root/framework/trunk/version-matrix/pom.xml 2009-07-17 14:13:16 UTC (rev 14951)
@@ -145,11 +145,27 @@
<artifactId>jsf-impl</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version >1.5.8</version>
- </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version >1.5.8</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version >1.5.8</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version >1.5.8</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-jdk14</artifactId>
+ <version >1.5.8</version>
+ </dependency>
<!-- Dependencies of JSF 2.0 -->
<!-- Included because of
http://jira.codehaus.org/browse/MNG-2205 -->