001    package org.tynamo.exceptionpage.services;
002    
003    import java.io.IOException;
004    import java.util.Properties;
005    
006    import org.apache.tapestry5.internal.services.LinkSource;
007    import org.apache.tapestry5.ioc.ServiceBinder;
008    import org.apache.tapestry5.services.ComponentClassResolver;
009    import org.apache.tapestry5.services.Request;
010    import org.apache.tapestry5.services.RequestExceptionHandler;
011    import org.apache.tapestry5.services.Response;
012    
013    public class ExceptionPageModule {
014            private static final String version;
015            static {
016                    Properties moduleProperties = new Properties();
017                    String aVersion = "unversioned";
018                    try {
019                            moduleProperties.load(ExceptionPageModule.class.getResourceAsStream("module.properties"));
020                            aVersion = moduleProperties.getProperty("module.version");
021                    } catch (IOException e) {
022                            // ignore
023                    }
024                    version = aVersion;
025            }
026    
027            public static void bind(ServiceBinder binder) {
028                    binder.bind(ExceptionHandler.class, ExceptionHandlerImpl.class);
029            }
030    
031            public RequestExceptionHandler decorateRequestExceptionHandler(ComponentClassResolver componentClassResolver, LinkSource linkSource,
032                            Request request, Response response, ExceptionHandler exceptionHandler, Object service) {
033                    return new ConfigurableRequestExceptionHandler((RequestExceptionHandler) service, componentClassResolver, linkSource, request,
034                                    response, exceptionHandler);
035            }
036    
037    }