You can subscribe to this list here.
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
(4) |
Dec
(2) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
(2) |
Feb
(19) |
Mar
(20) |
Apr
(20) |
May
|
Jun
(3) |
Jul
|
Aug
(23) |
Sep
(2) |
Oct
(5) |
Nov
(58) |
Dec
(49) |
2012 |
Jan
(11) |
Feb
(20) |
Mar
(9) |
Apr
(19) |
May
(14) |
Jun
(42) |
Jul
(13) |
Aug
|
Sep
(6) |
Oct
(6) |
Nov
(22) |
Dec
(66) |
2013 |
Jan
(12) |
Feb
(28) |
Mar
(54) |
Apr
(21) |
May
(7) |
Jun
(69) |
Jul
(80) |
Aug
(7) |
Sep
(12) |
Oct
(145) |
Nov
(44) |
Dec
(25) |
2014 |
Jan
(33) |
Feb
(21) |
Mar
(19) |
Apr
(2) |
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <fxb...@us...> - 2014-01-27 10:56:39
|
Revision: 1549 http://sourceforge.net/p/webassembletool/code/1549 Author: fxbonnet Date: 2014-01-27 10:56:35 +0000 (Mon, 27 Jan 2014) Log Message: ----------- 0000291: Enable ConfigReloadOnChange extension even without esigate.config system property defined https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=291 Modified Paths: -------------- trunk/esigate-core/src/main/java/org/esigate/DriverFactory.java trunk/esigate-core/src/main/java/org/esigate/extension/ConfigReloadOnChange.java Modified: trunk/esigate-core/src/main/java/org/esigate/DriverFactory.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/DriverFactory.java 2014-01-27 10:17:49 UTC (rev 1548) +++ trunk/esigate-core/src/main/java/org/esigate/DriverFactory.java 2014-01-27 10:56:35 UTC (rev 1549) @@ -18,10 +18,10 @@ import static org.apache.commons.lang3.StringUtils.defaultIfBlank; import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; @@ -74,38 +74,15 @@ InputStream extInputStream = null; try { - // Load from environment - String envPath = System.getProperty(PROP_CONF_LOCATION); - if (envPath != null) { - try { - LOG.info("Scanning configuration {}", envPath); - inputStream = new FileInputStream(new File(envPath)); - } catch (FileNotFoundException e) { - LOG.error("Can't read file {} (from -D" + PROP_CONF_LOCATION + ")", envPath, e); - } - } + URL configUrl = getConfigUrl(); - if (inputStream == null) { - LOG.info("Scanning configuration {}", "/esigate.properties"); - inputStream = DriverFactory.class.getResourceAsStream("/esigate.properties"); - } - - // For backward compatibility - if (inputStream == null) { - LOG.info("Scanning configuration /{}/{}", DriverFactory.class.getPackage().getName().replace(".", "/"), - "driver.properties"); - inputStream = DriverFactory.class.getResourceAsStream("driver.properties"); - } - if (inputStream == null) { - LOG.info("Scanning configuration {}", "/net/webassembletool/driver.properties"); - inputStream = DriverFactory.class.getResourceAsStream("/net/webassembletool/driver.properties"); - } - - if (inputStream == null) { + if (configUrl == null) { throw new ConfigurationException("esigate.properties configuration file " + "was not found in the classpath"); } + inputStream = configUrl.openStream(); + // load driver-ext.properties if exists LOG.info("Scanning configuration {}", "/esigate-ext.properties"); extInputStream = DriverFactory.class.getClassLoader().getResourceAsStream("/esigate-ext.properties"); @@ -306,4 +283,39 @@ configure(); } } + + /** + * @return The URL of the configuration file. + */ + public static URL getConfigUrl() { + URL configUrl = null; + // Load from environment + String envPath = System.getProperty(PROP_CONF_LOCATION); + if (envPath != null) { + try { + LOG.info("Scanning configuration {}", envPath); + configUrl = new File(envPath).toURI().toURL(); + } catch (MalformedURLException e) { + LOG.error("Can't read file {} (from -D" + PROP_CONF_LOCATION + ")", envPath, e); + } + } + + if (configUrl == null) { + LOG.info("Scanning configuration {}", "/esigate.properties"); + configUrl = DriverFactory.class.getResource("/esigate.properties"); + } + + // For backward compatibility + if (configUrl == null) { + LOG.info("Scanning configuration /{}/{}", DriverFactory.class.getPackage().getName().replace(".", "/"), + "driver.properties"); + configUrl = DriverFactory.class.getResource("driver.properties"); + } + if (configUrl == null) { + LOG.info("Scanning configuration {}", "/net/webassembletool/driver.properties"); + configUrl = DriverFactory.class.getResource("/net/webassembletool/driver.properties"); + } + return configUrl; + } + } Modified: trunk/esigate-core/src/main/java/org/esigate/extension/ConfigReloadOnChange.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/extension/ConfigReloadOnChange.java 2014-01-27 10:17:49 UTC (rev 1548) +++ trunk/esigate-core/src/main/java/org/esigate/extension/ConfigReloadOnChange.java 2014-01-27 10:56:35 UTC (rev 1549) @@ -15,6 +15,8 @@ package org.esigate.extension; import java.io.File; +import java.net.URISyntaxException; +import java.net.URL; import java.util.Properties; import org.esigate.Driver; @@ -119,8 +121,21 @@ String envPath = System.getProperty("esigate.config"); if (envPath != null) { configuration = new File(envPath); + } else { + URL configUrl = DriverFactory.getConfigUrl(); + if (configUrl != null && "file".equalsIgnoreCase(configUrl.getProtocol())) { + try { + configuration = new File(configUrl.toURI()); + } catch (URISyntaxException e) { + LOG.error("Unable to access configuration file", e); + } + } } + if (configuration != null && configuration.exists()) { + lastModified = configuration.lastModified(); + } + // Start watcher fileWatcher.start(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-27 10:17:52
|
Revision: 1548 http://sourceforge.net/p/webassembletool/code/1548 Author: fxbonnet Date: 2014-01-27 10:17:49 +0000 (Mon, 27 Jan 2014) Log Message: ----------- 0000258: Change esigate default settings. https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=258 Cleaned logs Modified Paths: -------------- trunk/esigate-core/src/test/java/org/esigate/cache/MemcachedCacheStorageTest.java trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java trunk/esigate-core/src/test/resources/simplelogger.properties Added Paths: ----------- trunk/esigate-core/src/test/resources/ehcache.xml Modified: trunk/esigate-core/src/test/java/org/esigate/cache/MemcachedCacheStorageTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/cache/MemcachedCacheStorageTest.java 2014-01-26 00:48:35 UTC (rev 1547) +++ trunk/esigate-core/src/test/java/org/esigate/cache/MemcachedCacheStorageTest.java 2014-01-27 10:17:49 UTC (rev 1548) @@ -18,11 +18,19 @@ import java.util.Properties; import junit.framework.TestCase; +import net.spy.memcached.compat.log.SLF4JLogger; import org.esigate.ConfigurationException; import org.esigate.Parameters; public class MemcachedCacheStorageTest extends TestCase { + @Override + protected void setUp() { + // Redirect the logs to slf4j + System.setProperty("net.spy.log.LoggerImpl", SLF4JLogger.class.getName()); + + } + public void testBasicOperations() { // Cannot be really tested as we would need a running memcached server // CacheStorage cacheStorage = new MemcachedCacheStorage(); Modified: trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java 2014-01-26 00:48:35 UTC (rev 1547) +++ trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java 2014-01-27 10:17:49 UTC (rev 1548) @@ -393,7 +393,6 @@ assertNotNull("X-Cache header is missing", xCacheHeader2); assertTrue("X-Cache header should indicate the first backend used", xCacheHeader1.getValue().startsWith("MISS from localhost")); - System.out.println(xCacheHeader2.getValue()); assertTrue("X-Cache header should indicate reuse of the cache entry", xCacheHeader2.getValue().startsWith("HIT from 127.0.0.1")); } Added: trunk/esigate-core/src/test/resources/ehcache.xml =================================================================== --- trunk/esigate-core/src/test/resources/ehcache.xml (rev 0) +++ trunk/esigate-core/src/test/resources/ehcache.xml 2014-01-27 10:17:49 UTC (rev 1548) @@ -0,0 +1,8 @@ +<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="../config/ehcache.xsd"> + <!-- Minimal configuration to avoid warnings during unit tests --> + <defaultCache maxElementsInMemory="1000" eternal="false" + timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="false" + maxElementsOnDisk="100" diskPersistent="false" + diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU" /> +</ehcache> Modified: trunk/esigate-core/src/test/resources/simplelogger.properties =================================================================== --- trunk/esigate-core/src/test/resources/simplelogger.properties 2014-01-26 00:48:35 UTC (rev 1547) +++ trunk/esigate-core/src/test/resources/simplelogger.properties 2014-01-27 10:17:49 UTC (rev 1548) @@ -1,8 +1,4 @@ org.slf4j.simpleLogger.defaultLogLevel=warn -org.slf4j.simpleLogger.log.org.esigate.Driver=debug -org.slf4j.simpleLogger.log.org.esigate.cache.CacheStorage=debug -org.slf4j.simpleLogger.log.org.apache.http.impl.client.cache.CachingExec=trace -org.slf4j.simpleLogger.log.org.apache.http.impl.execchain.MainClientExec=info -org.slf4j.simpleLogger.log.org.apache.http.impl.client.cache.CachedResponseSuitabilityChecker=trace -org.slf4j.simpleLogger.log.org.apache.http.impl.client.cache.CacheValidityPolicy=info - +org.slf4j.simpleLogger.log.org.esigate.Driver=warn +org.slf4j.simpleLogger.log.org.esigate.cache.CacheStorage=warn +org.slf4j.simpleLogger.log.org.apache.http.impl.client.cache.CachingExec=info This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-26 00:48:39
|
Revision: 1547 http://sourceforge.net/p/webassembletool/code/1547 Author: fxbonnet Date: 2014-01-26 00:48:35 +0000 (Sun, 26 Jan 2014) Log Message: ----------- 0000290: Upgrade to HttpClient 4.3.2 http://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=290 0000258: Change esigate default settings. https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=258 preserveHost=true Modified Paths: -------------- trunk/esigate-app-aggregator/src/main/resources/esigate.properties trunk/esigate-core/pom.xml trunk/esigate-core/src/main/java/org/esigate/HttpErrorPage.java trunk/esigate-core/src/main/java/org/esigate/Parameters.java trunk/esigate-core/src/main/java/org/esigate/cache/CacheAdapter.java trunk/esigate-core/src/main/java/org/esigate/cache/CacheStorage.java trunk/esigate-core/src/main/java/org/esigate/http/BasicCloseableHttpResponse.java trunk/esigate-core/src/main/java/org/esigate/http/HttpClientRequestExecutor.java trunk/esigate-core/src/main/java/org/esigate/http/OutgoingRequestContext.java trunk/esigate-core/src/test/java/org/esigate/DriverTest.java trunk/esigate-core/src/test/java/org/esigate/extension/surrogate/SurrogateTest.java trunk/pom.xml Added Paths: ----------- trunk/esigate-core/src/test/resources/simplelogger.properties Removed Paths: ------------- trunk/esigate-core/src/test/resources/commons-logging.properties trunk/esigate-core/src/test/resources/simplelog.properties Modified: trunk/esigate-app-aggregator/src/main/resources/esigate.properties =================================================================== --- trunk/esigate-app-aggregator/src/main/resources/esigate.properties 2014-01-21 09:22:59 UTC (rev 1546) +++ trunk/esigate-app-aggregator/src/main/resources/esigate.properties 2014-01-26 00:48:35 UTC (rev 1547) @@ -28,6 +28,7 @@ nocacheaggregated1.discardCookies=test-cookie nocacheaggregated1.maxConnectionsPerHost=50 nocacheaggregated1.mappings=/nocache/ag1/* +nocacheaggregated1.preserveHost=false preservehostaggregated1.remoteUrlBase=http://localhost:8080/esigate-app-aggregated1/ preservehostaggregated1.preserveHost=true Modified: trunk/esigate-core/pom.xml =================================================================== --- trunk/esigate-core/pom.xml 2014-01-21 09:22:59 UTC (rev 1546) +++ trunk/esigate-core/pom.xml 2014-01-26 00:48:35 UTC (rev 1547) @@ -45,6 +45,12 @@ <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient-cache</artifactId> + <exclusions> + <exclusion> + <artifactId>commons-logging</artifactId> + <groupId>commons-logging</groupId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>net.sf.ehcache</groupId> Modified: trunk/esigate-core/src/main/java/org/esigate/HttpErrorPage.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/HttpErrorPage.java 2014-01-21 09:22:59 UTC (rev 1546) +++ trunk/esigate-core/src/main/java/org/esigate/HttpErrorPage.java 2014-01-26 00:48:35 UTC (rev 1547) @@ -17,7 +17,6 @@ import java.io.IOException; import java.io.PrintWriter; -import java.io.UnsupportedEncodingException; import java.net.SocketException; import java.net.SocketTimeoutException; @@ -54,12 +53,7 @@ private final CloseableHttpResponse httpResponse; private static HttpEntity toMemoryEntity(String content) { - try { - return new StringEntity(content, "UTF-8"); - } catch (UnsupportedEncodingException e) { - // This should not happen as UTF-8 is always supported - throw new RuntimeException(e); - } + return new StringEntity(content, "UTF-8"); } private static HttpEntity toMemoryEntity(Exception exception) { Modified: trunk/esigate-core/src/main/java/org/esigate/Parameters.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/Parameters.java 2014-01-21 09:22:59 UTC (rev 1546) +++ trunk/esigate-core/src/main/java/org/esigate/Parameters.java 2014-01-26 00:48:35 UTC (rev 1547) @@ -58,7 +58,7 @@ public static final Parameter PROXY_PASSWORD = new Parameter("proxyPassword", null); // Http headers - public static final Parameter PRESERVE_HOST = new Parameter("preserveHost", "false"); + public static final Parameter PRESERVE_HOST = new Parameter("preserveHost", "true"); // Cookies public static final Parameter COOKIE_MANAGER = new Parameter("cookieManager", DefaultCookieManager.class.getName()); Modified: trunk/esigate-core/src/main/java/org/esigate/cache/CacheAdapter.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/cache/CacheAdapter.java 2014-01-21 09:22:59 UTC (rev 1546) +++ trunk/esigate-core/src/main/java/org/esigate/cache/CacheAdapter.java 2014-01-26 00:48:35 UTC (rev 1547) @@ -32,7 +32,6 @@ import org.esigate.Parameters; import org.esigate.http.DateUtils; import org.esigate.http.OutgoingRequestContext; -import org.esigate.util.UriUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,7 +48,6 @@ private int ttl; private boolean xCacheHeader; private boolean viaHeader; - private HttpRoute routeForCacheKey; public void init(Properties properties) { staleIfError = Parameters.STALE_IF_ERROR.getValueInt(properties); @@ -65,8 +63,6 @@ LOG.info("Initializing cache for provider " + Parameters.REMOTE_URL_BASE.getValueString(properties) + " staleIfError=" + staleIfError + " staleWhileRevalidate=" + staleWhileRevalidate + " ttl=" + ttl + " xCacheHeader=" + xCacheHeader + " viaHeader=" + viaHeader); - String firstBaseURL = Parameters.REMOTE_URL_BASE.getValueArray(properties)[0]; - routeForCacheKey = new HttpRoute(UriUtils.extractHost(firstBaseURL)); } public ClientExecChain wrapCachingHttpClient(final ClientExecChain wrapped) { @@ -83,11 +79,8 @@ HttpException { OutgoingRequestContext context = OutgoingRequestContext.adapt(httpClientContext); - // Save the real route to restore later - context.setRealHttpRoute(route); - // Switch route for the cache to generate the right cache key - CloseableHttpResponse response = wrapped.execute(routeForCacheKey, request, context, execAware); + CloseableHttpResponse response = wrapped.execute(route, request, context, execAware); // Remove previously added Cache-control header if (request.getRequestLine().getMethod().equalsIgnoreCase("GET") @@ -130,8 +123,7 @@ return (statusCode == HttpStatus.SC_OK || statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY || statusCode == HttpStatus.SC_NOT_FOUND || statusCode == HttpStatus.SC_INTERNAL_SERVER_ERROR - || statusCode == HttpStatus.SC_SERVICE_UNAVAILABLE - || statusCode == HttpStatus.SC_NOT_MODIFIED || statusCode == HttpStatus.SC_GATEWAY_TIMEOUT); + || statusCode == HttpStatus.SC_SERVICE_UNAVAILABLE || statusCode == HttpStatus.SC_NOT_MODIFIED || statusCode == HttpStatus.SC_GATEWAY_TIMEOUT); } /** @@ -148,16 +140,9 @@ HttpClientContext httpClientContext, HttpExecutionAware execAware) throws IOException, HttpException { OutgoingRequestContext context = OutgoingRequestContext.adapt(httpClientContext); - // Restore real route - HttpRoute realRoute = context.getRealHttpRoute(); - // In case we are bypassing the cache - if (realRoute == null) { - realRoute = route; - } + CloseableHttpResponse response = wrapped.execute(route, request, context, execAware); - CloseableHttpResponse response = wrapped.execute(realRoute, request, context, execAware); - String method = request.getRequestLine().getMethod(); int statusCode = response.getStatusLine().getStatusCode(); Modified: trunk/esigate-core/src/main/java/org/esigate/cache/CacheStorage.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/cache/CacheStorage.java 2014-01-21 09:22:59 UTC (rev 1546) +++ trunk/esigate-core/src/main/java/org/esigate/cache/CacheStorage.java 2014-01-26 00:48:35 UTC (rev 1547) @@ -33,7 +33,7 @@ @Override public void putEntry(String key, HttpCacheEntry entry) throws IOException { - LOG.debug("putEntry({})", key); + LOG.debug("putEntry({},{})", key, entry); impl.putEntry(key, entry); } @@ -52,7 +52,7 @@ @Override public void updateEntry(String key, HttpCacheUpdateCallback callback) throws IOException, HttpCacheUpdateException { - LOG.debug("updateEntry({})", key); + LOG.debug("updateEntry({},{})", key, callback); impl.updateEntry(key, callback); } Modified: trunk/esigate-core/src/main/java/org/esigate/http/BasicCloseableHttpResponse.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/http/BasicCloseableHttpResponse.java 2014-01-21 09:22:59 UTC (rev 1546) +++ trunk/esigate-core/src/main/java/org/esigate/http/BasicCloseableHttpResponse.java 2014-01-26 00:48:35 UTC (rev 1547) @@ -120,7 +120,6 @@ httpResponse.setHeader(name, value); } - @SuppressWarnings("deprecation") @Override public Locale getLocale() { return httpResponse.getLocale(); @@ -136,7 +135,6 @@ httpResponse.removeHeader(header); } - @SuppressWarnings("deprecation") @Override public void setLocale(Locale loc) { httpResponse.setLocale(loc); Modified: trunk/esigate-core/src/main/java/org/esigate/http/HttpClientRequestExecutor.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/http/HttpClientRequestExecutor.java 2014-01-21 09:22:59 UTC (rev 1546) +++ trunk/esigate-core/src/main/java/org/esigate/http/HttpClientRequestExecutor.java 2014-01-26 00:48:35 UTC (rev 1547) @@ -75,6 +75,7 @@ private HeaderManager headerManager; private int connectTimeout; private int socketTimeout; + private HttpHost firstBaseUrlHost; public static final class HttpClientHelperBuilder implements RequestExecutorBuilder { private EventManager eventManager; @@ -117,6 +118,8 @@ httpClientHelper.connectTimeout = Parameters.CONNECT_TIMEOUT.getValueInt(properties); httpClientHelper.socketTimeout = Parameters.SOCKET_TIMEOUT.getValueInt(properties); httpClientHelper.httpClient = buildHttpClient(properties, eventManager, connectionManager); + String firstBaseURL = Parameters.REMOTE_URL_BASE.getValueArray(properties)[0]; + httpClientHelper.firstBaseUrlHost = UriUtils.extractHost(firstBaseURL); return httpClientHelper; } @@ -207,11 +210,15 @@ // request to physically. HttpHost physicalHost = UriUtils.extractHost(uri); - // Preserve host if required - if (preserveHost && !originalRequest.isExternal()) { - HttpHost virtualHost = HttpRequestHelper.getHost(originalRequest); - // Rewrite the uri with the virtualHost - uri = UriUtils.rewriteURI(uri, virtualHost); + if (!originalRequest.isExternal()) { + if (preserveHost) { + // Preserve host if required + HttpHost virtualHost = HttpRequestHelper.getHost(originalRequest); + // Rewrite the uri with the virtualHost + uri = UriUtils.rewriteURI(uri, virtualHost); + } else { + uri = UriUtils.rewriteURI(uri, firstBaseUrlHost); + } } RequestConfig.Builder builder = RequestConfig.custom(); Modified: trunk/esigate-core/src/main/java/org/esigate/http/OutgoingRequestContext.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/http/OutgoingRequestContext.java 2014-01-21 09:22:59 UTC (rev 1546) +++ trunk/esigate-core/src/main/java/org/esigate/http/OutgoingRequestContext.java 2014-01-26 00:48:35 UTC (rev 1547) @@ -17,13 +17,11 @@ import org.apache.http.HttpHost; import org.apache.http.client.protocol.HttpClientContext; -import org.apache.http.conn.routing.HttpRoute; import org.apache.http.protocol.HttpContext; public class OutgoingRequestContext extends HttpClientContext { private static final String PROXY = "PROXY"; private static final String OUTGOING_REQUEST = "OUTGOING_REQUEST"; - private static final String REAL_HTTP_ROUTE = "REAL_HTTP_ROUTE"; private static final String PHYSICAL_HOST = "PHYSICAL_HOST"; public static OutgoingRequestContext adapt(final HttpContext context) { @@ -63,14 +61,6 @@ setAttribute(OUTGOING_REQUEST, outgoingRequest); } - public HttpRoute getRealHttpRoute() { - return getAttribute(REAL_HTTP_ROUTE, HttpRoute.class); - } - - public void setRealHttpRoute(HttpRoute httpRoute) { - setAttribute(REAL_HTTP_ROUTE, httpRoute); - } - public HttpHost getPhysicalHost() { return getAttribute(PHYSICAL_HOST, HttpHost.class); } Modified: trunk/esigate-core/src/test/java/org/esigate/DriverTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/DriverTest.java 2014-01-21 09:22:59 UTC (rev 1546) +++ trunk/esigate-core/src/test/java/org/esigate/DriverTest.java 2014-01-26 00:48:35 UTC (rev 1547) @@ -223,6 +223,7 @@ public void testRewriteRedirectResponse() throws Exception { Properties properties = new Properties(); properties.put(Parameters.REMOTE_URL_BASE.getName(), "http://www.foo.com:8080/"); + properties.put(Parameters.PRESERVE_HOST, "false"); request = TestUtils.createIncomingRequest("http://www.bar.com/foo/"); HttpResponse response = new BasicHttpResponse(new ProtocolVersion("HTTP", 1, 1), HttpStatus.SC_MOVED_TEMPORARILY, "Found"); Modified: trunk/esigate-core/src/test/java/org/esigate/extension/surrogate/SurrogateTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/extension/surrogate/SurrogateTest.java 2014-01-21 09:22:59 UTC (rev 1546) +++ trunk/esigate-core/src/test/java/org/esigate/extension/surrogate/SurrogateTest.java 2014-01-26 00:48:35 UTC (rev 1547) @@ -23,7 +23,7 @@ import org.esigate.Driver; import org.esigate.HttpErrorPage; import org.esigate.Parameters; -import org.esigate.extension.parallelesi.Esi; +import org.esigate.extension.Esi; import org.esigate.http.IncomingRequest; import org.esigate.test.conn.IResponseHandler; import org.esigate.test.conn.SequenceResponse; Deleted: trunk/esigate-core/src/test/resources/commons-logging.properties =================================================================== --- trunk/esigate-core/src/test/resources/commons-logging.properties 2014-01-21 09:22:59 UTC (rev 1546) +++ trunk/esigate-core/src/test/resources/commons-logging.properties 2014-01-26 00:48:35 UTC (rev 1547) @@ -1 +0,0 @@ -org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog Deleted: trunk/esigate-core/src/test/resources/simplelog.properties =================================================================== --- trunk/esigate-core/src/test/resources/simplelog.properties 2014-01-21 09:22:59 UTC (rev 1546) +++ trunk/esigate-core/src/test/resources/simplelog.properties 2014-01-26 00:48:35 UTC (rev 1547) @@ -1,2 +0,0 @@ -org.apache.commons.logging.simplelog.defaultlog=error -org.apache.commons.logging.simplelog.log.org.esigate=debug Added: trunk/esigate-core/src/test/resources/simplelogger.properties =================================================================== --- trunk/esigate-core/src/test/resources/simplelogger.properties (rev 0) +++ trunk/esigate-core/src/test/resources/simplelogger.properties 2014-01-26 00:48:35 UTC (rev 1547) @@ -0,0 +1,8 @@ +org.slf4j.simpleLogger.defaultLogLevel=warn +org.slf4j.simpleLogger.log.org.esigate.Driver=debug +org.slf4j.simpleLogger.log.org.esigate.cache.CacheStorage=debug +org.slf4j.simpleLogger.log.org.apache.http.impl.client.cache.CachingExec=trace +org.slf4j.simpleLogger.log.org.apache.http.impl.execchain.MainClientExec=info +org.slf4j.simpleLogger.log.org.apache.http.impl.client.cache.CachedResponseSuitabilityChecker=trace +org.slf4j.simpleLogger.log.org.apache.http.impl.client.cache.CacheValidityPolicy=info + Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2014-01-21 09:22:59 UTC (rev 1546) +++ trunk/pom.xml 2014-01-26 00:48:35 UTC (rev 1547) @@ -684,7 +684,7 @@ </distributionManagement> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <dependency.httpclient.version>4.3.1</dependency.httpclient.version> + <dependency.httpclient.version>4.3.2</dependency.httpclient.version> <currentVersion>${project.version}</currentVersion> </properties> </project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nri...@us...> - 2014-01-21 09:23:02
|
Revision: 1546 http://sourceforge.net/p/webassembletool/code/1546 Author: nricheton Date: 2014-01-21 09:22:59 +0000 (Tue, 21 Jan 2014) Log Message: ----------- 0000288: ProxyServlet no longer perform ESI/Aggregator since 4.2 (4.x only) https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=288 Modified Paths: -------------- branches/esigate-4.x/esigate-core/src/main/java/org/esigate/servlet/ProxyServlet.java Modified: branches/esigate-4.x/esigate-core/src/main/java/org/esigate/servlet/ProxyServlet.java =================================================================== --- branches/esigate-4.x/esigate-core/src/main/java/org/esigate/servlet/ProxyServlet.java 2014-01-17 17:31:54 UTC (rev 1545) +++ branches/esigate-4.x/esigate-core/src/main/java/org/esigate/servlet/ProxyServlet.java 2014-01-21 09:22:59 UTC (rev 1546) @@ -27,6 +27,8 @@ import org.esigate.Driver; import org.esigate.DriverFactory; import org.esigate.HttpErrorPage; +import org.esigate.aggregator.AggregateRenderer; +import org.esigate.esi.EsiRenderer; import org.esigate.impl.UriMapping; import org.esigate.servlet.impl.DriverSelector; import org.esigate.servlet.impl.RequestUrl; @@ -72,7 +74,7 @@ Pair<Driver, UriMapping> dm = this.driverSelector.selectProvider(request); String relUrl = RequestUrl.getRelativeUrl(request, dm.getRight()); LOG.debug("Proxying {}", relUrl); - dm.getLeft().proxy(relUrl, mediator.getHttpRequest()); + dm.getLeft().proxy(relUrl, mediator.getHttpRequest(), new AggregateRenderer(), new EsiRenderer()); } catch (HttpErrorPage e) { mediator.sendResponse(e.getHttpResponse()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-17 17:31:59
|
Revision: 1545 http://sourceforge.net/p/webassembletool/code/1545 Author: fxbonnet Date: 2014-01-17 17:31:54 +0000 (Fri, 17 Jan 2014) Log Message: ----------- 0000258: Change esigate default settings. https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=258 Cookies are now forwarded by default Modified Paths: -------------- trunk/esigate-app-aggregator/src/main/resources/esigate.properties trunk/esigate-app-master/src/main/resources/esigate.properties trunk/esigate-core/src/main/java/org/esigate/Parameters.java trunk/esigate-core/src/main/java/org/esigate/cookie/DefaultCookieManager.java trunk/esigate-core/src/test/java/org/esigate/DriverCookieTest.java trunk/esigate-core/src/test/java/org/esigate/DriverTest.java trunk/esigate-core/src/test/java/org/esigate/cookie/DefaultCookieManagerTest.java trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java Modified: trunk/esigate-app-aggregator/src/main/resources/esigate.properties =================================================================== --- trunk/esigate-app-aggregator/src/main/resources/esigate.properties 2014-01-17 15:41:38 UTC (rev 1544) +++ trunk/esigate-app-aggregator/src/main/resources/esigate.properties 2014-01-17 17:31:54 UTC (rev 1545) @@ -7,7 +7,6 @@ default.mappings=/* # Required for Vary testing. -default.forwardCookies=test-cookie,test0,test1 default.discardCookies=test-cookie default.maxConnectionsPerHost=60 @@ -15,7 +14,7 @@ aggregated2.useCache=false aggregated2.connectTimeout=1000 aggregated2.socketTimeout=5000 -aggregated2.forwardCookies=test1,test2,testjs +aggregated2.storeCookiesInSession=test0 aggregated2.maxConnectionsPerHost=60 aggregated2.mappings=/ag2/* @@ -25,7 +24,7 @@ nocacheaggregated1.connectTimeout=1000 nocacheaggregated1.socketTimeout=5000 nocacheaggregated1.useCache=false -nocacheaggregated1.forwardCookies=test-cookie,test0,test1 +nocacheaggregated1.storeCookiesInSession=test4,test2,testjs nocacheaggregated1.discardCookies=test-cookie nocacheaggregated1.maxConnectionsPerHost=50 nocacheaggregated1.mappings=/nocache/ag1/* Modified: trunk/esigate-app-master/src/main/resources/esigate.properties =================================================================== --- trunk/esigate-app-master/src/main/resources/esigate.properties 2014-01-17 15:41:38 UTC (rev 1544) +++ trunk/esigate-app-master/src/main/resources/esigate.properties 2014-01-17 17:31:54 UTC (rev 1545) @@ -6,10 +6,6 @@ ttl=5 maxObjectSize=10000 -# Used for Vary testing -forwardCookies=test-cookie -discardCookies=test-cookie - xCacheHeader=true local.extensions=org.esigate.servlet.ServletExtension,org.esigate.extension.Esi Modified: trunk/esigate-core/src/main/java/org/esigate/Parameters.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/Parameters.java 2014-01-17 15:41:38 UTC (rev 1544) +++ trunk/esigate-core/src/main/java/org/esigate/Parameters.java 2014-01-17 17:31:54 UTC (rev 1545) @@ -63,7 +63,7 @@ // Cookies public static final Parameter COOKIE_MANAGER = new Parameter("cookieManager", DefaultCookieManager.class.getName()); public static final Parameter DISCARD_COOKIES = new Parameter("discardCookies", null); - public static final Parameter FORWARD_COOKIES = new Parameter("forwardCookies", null); + public static final Parameter STORE_COOKIES_IN_SESSION = new Parameter("storeCookiesInSession", null); // Url rewriting public static final Parameter FIX_RESOURCES = new Parameter("fixResources", "false"); Modified: trunk/esigate-core/src/main/java/org/esigate/cookie/DefaultCookieManager.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/cookie/DefaultCookieManager.java 2014-01-17 15:41:38 UTC (rev 1544) +++ trunk/esigate-core/src/main/java/org/esigate/cookie/DefaultCookieManager.java 2014-01-17 17:31:54 UTC (rev 1545) @@ -38,9 +38,9 @@ * cookies in the user session. * * <p> - * When cookies are not forwarded or discarded, a the user session is used to store these cookies : in that case Esigate - * is no longer stateful. For public deployment is is recommended to use cookie forwarding and discarding to prevent - * session creation. + * When cookies are not stored in the session or discarded, they are forwarded to the client browser. If no cookie is + * stored to the session (default) EsiGate is completely stateless. For public deployment is is recommended to use + * cookie forwarding and discarding to prevent session creation. * * @author Francois-Xavier Bonnet * @author Nicolas Richeton @@ -50,65 +50,61 @@ private static final Logger LOG = LoggerFactory.getLogger(CookieManager.class); private static final String COOKIES_LIST_SESSION_KEY = CookieManager.class.getName() + "#cookies"; private Collection<String> discardCookies; - private Collection<String> forwardCookies; + private Collection<String> storeCookiesInSession; - protected Collection<String> getForwardCookies() { - return forwardCookies; + protected Collection<String> getStoredCookies() { + return storeCookiesInSession; } /** - * Init cookie manager. Reads parameters <b>discardCookies</b> and <b>forwardCookies</b>. + * Init cookie manager. Reads parameters <b>discardCookies</b> and <b>storeCookiesInSession</b>. */ @Override public void init(Driver d, Properties properties) { - // Cookies to forward - this.forwardCookies = Parameters.FORWARD_COOKIES.getValueList(properties); + // Cookies to store to session + this.storeCookiesInSession = Parameters.STORE_COOKIES_IN_SESSION.getValueList(properties); // Cookies to discard this.discardCookies = Parameters.DISCARD_COOKIES.getValueList(properties); // Verify configuration - if (this.forwardCookies.contains("*") && this.forwardCookies.size() > 1) { - throw new ConfigurationException("forwardCookies must be a list of cookie names OR *"); + if (this.storeCookiesInSession.contains("*") && this.storeCookiesInSession.size() > 1) { + throw new ConfigurationException("storeCookiesInSession must be a list of cookie names OR *"); } if (this.discardCookies.contains("*") && this.discardCookies.size() > 1) { throw new ConfigurationException("discardCookies must be a list of cookie names OR *"); } - if (this.forwardCookies.contains("*") && this.discardCookies.contains("*")) { - throw new ConfigurationException("cannot use * for forwardCookies AND discardCookies at the same time"); + if (this.storeCookiesInSession.contains("*") && this.discardCookies.contains("*")) { + throw new ConfigurationException( + "cannot use * for storeCookiesInSession AND discardCookies at the same time"); } } @Override public void addCookie(Cookie cookie, DriverRequest originalRequest) { String name = cookie.getName(); - if (discardCookies.contains(name) || (discardCookies.contains("*") && !forwardCookies.contains(name))) { + if (discardCookies.contains(name) || (discardCookies.contains("*") && !storeCookiesInSession.contains(name))) { if (LOG.isInfoEnabled()) { LOG.info("Cookie " + toString(cookie) + " -> discarding"); } - // Ignore cookie - } else if (forwardCookies.contains(name) || forwardCookies.contains("*")) { + } else if (storeCookiesInSession.contains(name) || storeCookiesInSession.contains("*")) { if (LOG.isInfoEnabled()) { - LOG.info("Cookie " + toString(cookie) + " -> forwarding"); + LOG.info("Cookie " + toString(cookie) + " -> storing to session"); } - - // Forward cookie in response. - originalRequest.getOriginalRequest().addNewCookie(rewriteForBrowser(cookie, originalRequest)); - } else { - if (LOG.isInfoEnabled()) { - LOG.info("Cookie " + toString(cookie) + " -> storing to context"); - } - // Store cookie in session UserContext userContext = originalRequest.getUserContext(); - BasicCookieStore cookies = (BasicCookieStore) userContext.getAttribute(COOKIES_LIST_SESSION_KEY); if (cookies == null) { cookies = new BasicCookieStore(); } cookies.addCookie(cookie); - userContext.setAttribute(COOKIES_LIST_SESSION_KEY, cookies); + } else { + if (LOG.isInfoEnabled()) { + LOG.info("Cookie " + toString(cookie) + " -> forwarding"); + } + // Forward cookie to response. + originalRequest.getOriginalRequest().addNewCookie(rewriteForBrowser(cookie, originalRequest)); } } @@ -130,7 +126,8 @@ if (requestCookies != null) { for (Cookie cookie : requestCookies) { String name = cookie.getName(); - if (forwardCookies.contains(name) || (forwardCookies.contains("*") && !discardCookies.contains(name))) { + if (!storeCookiesInSession.contains(name) && !storeCookiesInSession.contains("*") + && !discardCookies.contains(name) && !discardCookies.contains("*")) { cookies.addCookie(rewriteForServer(cookie, originalRequest)); } } Modified: trunk/esigate-core/src/test/java/org/esigate/DriverCookieTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/DriverCookieTest.java 2014-01-17 15:41:38 UTC (rev 1544) +++ trunk/esigate-core/src/test/java/org/esigate/DriverCookieTest.java 2014-01-17 17:31:54 UTC (rev 1545) @@ -46,7 +46,6 @@ // Conf Properties properties = new Properties(); properties.put(Parameters.REMOTE_URL_BASE.getName(), "http://provider/"); - properties.put(Parameters.FORWARD_COOKIES.getName(), "*"); // Setup remote server (provider) response. Driver driver = createMockDriver(properties, new IResponseHandler() { Modified: trunk/esigate-core/src/test/java/org/esigate/DriverTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/DriverTest.java 2014-01-17 15:41:38 UTC (rev 1544) +++ trunk/esigate-core/src/test/java/org/esigate/DriverTest.java 2014-01-17 17:31:54 UTC (rev 1545) @@ -133,8 +133,7 @@ } catch (HttpErrorPage e) { driverResponse = e.getHttpResponse(); } - assertEquals("Status code", HttpStatus.SC_INTERNAL_SERVER_ERROR, - driverResponse.getStatusLine().getStatusCode()); + assertEquals("Status code", HttpStatus.SC_INTERNAL_SERVER_ERROR, driverResponse.getStatusLine().getStatusCode()); assertTrue("Header 'Dummy'", driverResponse.containsHeader("Dummy")); } @@ -156,8 +155,7 @@ } catch (HttpErrorPage e) { driverResponse = e.getHttpResponse(); } - assertEquals("Status code", HttpStatus.SC_INTERNAL_SERVER_ERROR, - driverResponse.getStatusLine().getStatusCode()); + assertEquals("Status code", HttpStatus.SC_INTERNAL_SERVER_ERROR, driverResponse.getStatusLine().getStatusCode()); assertFalse("Header 'Transfer-Encoding'", driverResponse.containsHeader("Transfer-Encoding")); } @@ -448,7 +446,6 @@ Properties properties = new Properties(); properties.put(Parameters.REMOTE_URL_BASE.getName(), "http://localhost.mydomain.fr/"); properties.put(Parameters.PRESERVE_HOST.getName(), "false"); - properties.put(Parameters.FORWARD_COOKIES.getName(), "*"); mockConnectionManager = new MockConnectionManager() { @Override @@ -483,7 +480,6 @@ Properties properties = new Properties(); properties.put(Parameters.REMOTE_URL_BASE.getName(), "http://localhost.mydomain.fr/"); properties.put(Parameters.PRESERVE_HOST.getName(), "true"); - properties.put(Parameters.FORWARD_COOKIES.getName(), "*"); mockConnectionManager = new MockConnectionManager() { @Override @@ -595,7 +591,6 @@ Properties properties = new Properties(); properties.put(Parameters.REMOTE_URL_BASE.getName(), "http://localhost/"); properties.put(Parameters.PRESERVE_HOST.getName(), "true"); - properties.put(Parameters.FORWARD_COOKIES.getName(), "*"); BasicHttpResponse response = new BasicHttpResponse(new ProtocolVersion("HTTP", 1, 1), HttpStatus.SC_OK, "Ok"); response.addHeader("Date", "Thu, 13 Dec 2012 08:55:37 GMT"); @@ -675,7 +670,6 @@ Properties properties = new Properties(); properties.put(Parameters.REMOTE_URL_BASE.getName(), "http://localhost:8080/"); properties.put(Parameters.PRESERVE_HOST.getName(), "true"); - properties.put(Parameters.FORWARD_COOKIES.getName(), "*"); mockConnectionManager = new MockConnectionManager() { @Override @@ -699,7 +693,6 @@ Properties properties = new Properties(); properties.put(Parameters.REMOTE_URL_BASE.getName(), "http://localhost:8080/"); properties.put(Parameters.PRESERVE_HOST.getName(), "false"); - properties.put(Parameters.FORWARD_COOKIES.getName(), "*"); mockConnectionManager = new MockConnectionManager() { @Override @@ -730,7 +723,6 @@ Properties properties = new Properties(); properties.put(Parameters.REMOTE_URL_BASE, "http://localhost:8080/"); properties.put(Parameters.PRESERVE_HOST, "true"); - properties.put(Parameters.FORWARD_COOKIES, "*"); mockConnectionManager = new MockConnectionManager() { @Override @@ -756,7 +748,6 @@ Properties properties = new Properties(); properties.put(Parameters.REMOTE_URL_BASE.getName(), "http://localhost:8080/"); properties.put(Parameters.PRESERVE_HOST.getName(), "true"); - properties.put(Parameters.FORWARD_COOKIES.getName(), "*"); mockConnectionManager = new MockConnectionManager() { @Override @@ -783,7 +774,6 @@ Properties properties = new Properties(); properties.put(Parameters.REMOTE_URL_BASE.getName(), "http://localhost:8080/"); properties.put(Parameters.PRESERVE_HOST.getName(), "true"); - properties.put(Parameters.FORWARD_COOKIES.getName(), "*"); mockConnectionManager = new MockConnectionManager() { @Override Modified: trunk/esigate-core/src/test/java/org/esigate/cookie/DefaultCookieManagerTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/cookie/DefaultCookieManagerTest.java 2014-01-17 15:41:38 UTC (rev 1544) +++ trunk/esigate-core/src/test/java/org/esigate/cookie/DefaultCookieManagerTest.java 2014-01-17 17:31:54 UTC (rev 1545) @@ -39,7 +39,7 @@ @Override protected void setUp() throws HttpErrorPage { Properties properties = new Properties(); - properties.setProperty(Parameters.FORWARD_COOKIES.getName(), "a, c"); + properties.setProperty(Parameters.STORE_COOKIES_IN_SESSION.getName(), "b, f"); properties.setProperty(Parameters.DISCARD_COOKIES.getName(), "D,e"); cookieManager = new DefaultCookieManager(); cookieManager.init(null, properties); @@ -66,23 +66,23 @@ } public void testInit() { - assertNotNull(cookieManager.getForwardCookies()); - assertEquals(2, cookieManager.getForwardCookies().size()); - List<String> cookieNames = new ArrayList<String>(cookieManager.getForwardCookies()); + assertNotNull(cookieManager.getStoredCookies()); + assertEquals(2, cookieManager.getStoredCookies().size()); + List<String> cookieNames = new ArrayList<String>(cookieManager.getStoredCookies()); Collections.sort(cookieNames); - assertEquals("a", cookieNames.get(0)); - assertEquals("c", cookieNames.get(1)); + assertEquals("b", cookieNames.get(0)); + assertEquals("f", cookieNames.get(1)); } public void testFilter() throws HttpErrorPage { IncomingRequest incomingRequest = TestUtils.createIncomingRequest() .addCookie(new BasicClientCookie("a", "value a")).addCookie(new BasicClientCookie("b", "value b")) - .addCookie(new BasicClientCookie("c", "value c")).build(); + .addCookie(new BasicClientCookie("c", "value c")).addCookie(new BasicClientCookie("e", "value e")).build(); request = new DriverRequest(incomingRequest, driver, false); List<org.apache.http.cookie.Cookie> cookies = cookieManager.getCookies(request); assertNotNull(cookies); assertFalse(cookies.isEmpty()); - assertTrue(cookies.size() == 2); + assertEquals(2, cookies.size()); assertEquals("a", cookies.get(0).getName()); assertEquals("c", cookies.get(1).getName()); } Modified: trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java 2014-01-17 15:41:38 UTC (rev 1544) +++ trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java 2014-01-17 17:31:54 UTC (rev 1545) @@ -515,7 +515,6 @@ public void testCookieWithSpaces() throws Exception { properties = new Properties(); properties.put(Parameters.REMOTE_URL_BASE.getName(), "http://localhost:8080"); - properties.put(Parameters.FORWARD_COOKIES.getName(), "*"); properties.put(Parameters.USE_CACHE, "false"); createHttpClientRequestExecutor(); DriverRequest originalRequest = TestUtils.createDriverRequest(driver); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-17 15:41:41
|
Revision: 1544 http://sourceforge.net/p/webassembletool/code/1544 Author: fxbonnet Date: 2014-01-17 15:41:38 +0000 (Fri, 17 Jan 2014) Log Message: ----------- 0000258: Change esigate default settings. https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=258 Added Configuration reload on change in default extensions Modified Paths: -------------- trunk/esigate-core/src/main/java/org/esigate/Parameters.java Modified: trunk/esigate-core/src/main/java/org/esigate/Parameters.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/Parameters.java 2014-01-17 15:28:12 UTC (rev 1543) +++ trunk/esigate-core/src/main/java/org/esigate/Parameters.java 2014-01-17 15:41:38 UTC (rev 1544) @@ -18,6 +18,7 @@ import org.esigate.authentication.RemoteUserAuthenticationHandler; import org.esigate.cache.BasicCacheStorage; import org.esigate.cookie.DefaultCookieManager; +import org.esigate.extension.ConfigReloadOnChange; import org.esigate.extension.Esi; import org.esigate.extension.FetchLogging; import org.esigate.extension.FragmentLogging; @@ -81,8 +82,8 @@ public static final Parameter EXTENSIONS = new Parameter("extensions", FragmentLogging.class.getName() + "," + FetchLogging.class.getName() + "," + RemoteUserAuthenticationHandler.class.getName() + "," + Esi.class.getName() + "," + ResourceFixup.class.getName() + "," + XPoweredBy.class.getName() + "," - + Surrogate.class.getName()); - + + Surrogate.class.getName() + "," + ConfigReloadOnChange.class.getName()); + // Cache settings public static final Parameter USE_CACHE = new Parameter("useCache", "true"); public static final Parameter MAX_CACHE_ENTRIES = new Parameter("maxCacheEntries", "1000"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-17 15:28:17
|
Revision: 1543 http://sourceforge.net/p/webassembletool/code/1543 Author: fxbonnet Date: 2014-01-17 15:28:12 +0000 (Fri, 17 Jan 2014) Log Message: ----------- 0000258: Change esigate default settings. https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=258 Removed Aggregate extension from defaults Modified Paths: -------------- trunk/esigate-app-aggregator/src/main/resources/esigate.properties trunk/esigate-core/src/main/java/org/esigate/Parameters.java Modified: trunk/esigate-app-aggregator/src/main/resources/esigate.properties =================================================================== --- trunk/esigate-app-aggregator/src/main/resources/esigate.properties 2014-01-17 14:38:11 UTC (rev 1542) +++ trunk/esigate-app-aggregator/src/main/resources/esigate.properties 2014-01-17 15:28:12 UTC (rev 1543) @@ -1,4 +1,5 @@ default.remoteUrlBase=http://localhost:8080/esigate-app-aggregated1/ +default.extensions=org.esigate.extension.Esi,org.esigate.extension.Aggregate default.uriEncoding=UTF-8 default.connectTimeout=1000 default.socketTimeout=5000 @@ -19,6 +20,7 @@ aggregated2.mappings=/ag2/* nocacheaggregated1.remoteUrlBase=http://localhost:8080/esigate-app-aggregated1/ +nocacheaggregated1.extensions=org.esigate.extension.Esi,org.esigate.extension.Aggregate nocacheaggregated1.uriEncoding=UTF-8 nocacheaggregated1.connectTimeout=1000 nocacheaggregated1.socketTimeout=5000 Modified: trunk/esigate-core/src/main/java/org/esigate/Parameters.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/Parameters.java 2014-01-17 14:38:11 UTC (rev 1542) +++ trunk/esigate-core/src/main/java/org/esigate/Parameters.java 2014-01-17 15:28:12 UTC (rev 1543) @@ -18,7 +18,6 @@ import org.esigate.authentication.RemoteUserAuthenticationHandler; import org.esigate.cache.BasicCacheStorage; import org.esigate.cookie.DefaultCookieManager; -import org.esigate.extension.Aggregate; import org.esigate.extension.Esi; import org.esigate.extension.FetchLogging; import org.esigate.extension.FragmentLogging; @@ -80,13 +79,10 @@ // Extensions public static final Parameter EXTENSIONS = new Parameter("extensions", FragmentLogging.class.getName() + "," - + FetchLogging.class.getName() - + "," - // + ErrorPages.class.getName() + "," - + RemoteUserAuthenticationHandler.class.getName() + "," + Esi.class.getName() + "," - + Aggregate.class.getName() + "," + ResourceFixup.class.getName() + "," + XPoweredBy.class.getName() + "," + + FetchLogging.class.getName() + "," + RemoteUserAuthenticationHandler.class.getName() + "," + + Esi.class.getName() + "," + ResourceFixup.class.getName() + "," + XPoweredBy.class.getName() + "," + Surrogate.class.getName()); - + // Cache settings public static final Parameter USE_CACHE = new Parameter("useCache", "true"); public static final Parameter MAX_CACHE_ENTRIES = new Parameter("maxCacheEntries", "1000"); @@ -118,8 +114,7 @@ // EhCache public static final Parameter EHCACHE_CACHE_NAME_PROPERTY = new Parameter("ehcache.cacheName", "esigate"); - public static final Parameter EHCACHE_CONFIGURATION_FILE_PROPERTY = new Parameter("ehcache.configurationFile", - null); + public static final Parameter EHCACHE_CONFIGURATION_FILE_PROPERTY = new Parameter("ehcache.configurationFile", null); // MemCached public static final Parameter MEMCACHED_SERVERS_PROPERTY = new Parameter("memcached.servers", null); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-17 14:38:15
|
Revision: 1542 http://sourceforge.net/p/webassembletool/code/1542 Author: fxbonnet Date: 2014-01-17 14:38:11 +0000 (Fri, 17 Jan 2014) Log Message: ----------- 0000258: Change esigate default settings. https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=258 Forwarded headers Modified Paths: -------------- trunk/esigate-core/src/main/java/org/esigate/Parameters.java trunk/esigate-core/src/main/java/org/esigate/http/HeaderManager.java trunk/esigate-core/src/main/java/org/esigate/http/HttpClientRequestExecutor.java trunk/esigate-core/src/main/java/org/esigate/util/FilterList.java trunk/esigate-core/src/main/java/org/esigate/util/PropertiesUtil.java trunk/esigate-core/src/test/java/org/esigate/http/HeaderManagerTest.java trunk/esigate-core/src/test/java/org/esigate/http/XForwardedHeadersTest.java trunk/esigate-core/src/test/java/org/esigate/util/FilterListTest.java Modified: trunk/esigate-core/src/main/java/org/esigate/Parameters.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/Parameters.java 2014-01-17 10:08:47 UTC (rev 1541) +++ trunk/esigate-core/src/main/java/org/esigate/Parameters.java 2014-01-17 14:38:11 UTC (rev 1542) @@ -59,14 +59,6 @@ // Http headers public static final Parameter PRESERVE_HOST = new Parameter("preserveHost", "false"); - public static final Parameter DISCARD_REQUEST_HEADERS = new Parameter("discardRequestHeaders", - "Authorization,Connection,Content-Length,Cache-control,Cookie,Host," - + "Max-Forwards,Pragma,Proxy-Authorization,TE,Trailer,Transfer-Encoding,Upgrade"); - public static final Parameter FORWARD_REQUEST_HEADERS = new Parameter("forwardRequestHeaders", null); - public static final Parameter DISCARD_RESPONSE_HEADERS = new Parameter("discardResponseHeaders", - "Connection,Content-Length,Content-MD5,Date,Keep-Alive,Proxy-Authenticate,Set-Cookie," - + "Trailer,Transfer-Encoding,WWW-Authenticate"); - public static final Parameter FORWARD_RESPONSE_HEADERS = new Parameter("forwardResponseHeaders", null); // Cookies public static final Parameter COOKIE_MANAGER = new Parameter("cookieManager", DefaultCookieManager.class.getName()); Modified: trunk/esigate-core/src/main/java/org/esigate/http/HeaderManager.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/http/HeaderManager.java 2014-01-17 10:08:47 UTC (rev 1541) +++ trunk/esigate-core/src/main/java/org/esigate/http/HeaderManager.java 2014-01-17 14:38:11 UTC (rev 1542) @@ -15,18 +15,13 @@ package org.esigate.http; -import java.util.Collections; -import java.util.Properties; - import org.apache.http.Header; import org.apache.http.HttpEntityEnclosingRequest; import org.apache.http.HttpHeaders; import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; -import org.esigate.Parameters; import org.esigate.impl.DriverRequest; import org.esigate.util.FilterList; -import org.esigate.util.PropertiesUtil; import org.esigate.util.UriUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,21 +37,42 @@ public class HeaderManager { private static final Logger LOG = LoggerFactory.getLogger(HeaderManager.class); - private final FilterList requestHeadersFilterList; - private final FilterList responseHeadersFilterList; + private final FilterList requestHeadersFilterList = new FilterList(); + private final FilterList responseHeadersFilterList = new FilterList(); - public HeaderManager(Properties properties) { + public HeaderManager() { // Populate headers filter lists - requestHeadersFilterList = new FilterList(); - responseHeadersFilterList = new FilterList(); - // By default all headers are forwarded - requestHeadersFilterList.add(Collections.singletonList("*")); - responseHeadersFilterList.add(Collections.singletonList("*")); - PropertiesUtil.populate(requestHeadersFilterList, properties, Parameters.FORWARD_REQUEST_HEADERS.getName(), - Parameters.DISCARD_REQUEST_HEADERS.getName(), "", Parameters.DISCARD_REQUEST_HEADERS.getDefaultValue()); - PropertiesUtil.populate(responseHeadersFilterList, properties, Parameters.FORWARD_RESPONSE_HEADERS.getName(), - Parameters.DISCARD_RESPONSE_HEADERS.getName(), "", - Parameters.DISCARD_RESPONSE_HEADERS.getDefaultValue()); + + // By default all request headers are forwarded + requestHeadersFilterList.add("*"); + // Except hop-by-hop headers + requestHeadersFilterList.remove("Authorization"); + requestHeadersFilterList.remove("Connection"); + requestHeadersFilterList.remove("Content-Length"); + requestHeadersFilterList.remove("Cache-control"); + requestHeadersFilterList.remove("Cookie"); + requestHeadersFilterList.remove("Host"); + requestHeadersFilterList.remove("Max-Forwards"); + requestHeadersFilterList.remove("Pragma"); + requestHeadersFilterList.remove("Proxy-Authorization"); + requestHeadersFilterList.remove("TE"); + requestHeadersFilterList.remove("Trailer"); + requestHeadersFilterList.remove("Transfer-Encoding"); + requestHeadersFilterList.remove("Upgrade"); + + // By default all response headers are forwarded + responseHeadersFilterList.add("*"); + // Except hop-by-hop headers + responseHeadersFilterList.remove("Connection"); + responseHeadersFilterList.remove("Content-Length"); + responseHeadersFilterList.remove("Content-MD5"); + responseHeadersFilterList.remove("Date"); + responseHeadersFilterList.remove("Keep-Alive"); + responseHeadersFilterList.remove("Proxy-Authenticate"); + responseHeadersFilterList.remove("Set-Cookie"); + responseHeadersFilterList.remove("Trailer"); + responseHeadersFilterList.remove("Transfer-Encoding"); + responseHeadersFilterList.remove("WWW-Authenticate"); } protected boolean isForwardedRequestHeader(String headerName) { @@ -82,8 +98,7 @@ String uri = httpRequest.getRequestLine().getUri(); for (Header header : originalRequest.getAllHeaders()) { // Special headers - if (HttpHeaders.REFERER.equalsIgnoreCase(header.getName()) - && isForwardedRequestHeader(HttpHeaders.REFERER)) { + if (HttpHeaders.REFERER.equalsIgnoreCase(header.getName()) && isForwardedRequestHeader(HttpHeaders.REFERER)) { String value = header.getValue(); value = UriUtils.translateUrl(value, originalUri, uri); httpRequest.addHeader(header.getName(), value); Modified: trunk/esigate-core/src/main/java/org/esigate/http/HttpClientRequestExecutor.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/http/HttpClientRequestExecutor.java 2014-01-17 10:08:47 UTC (rev 1541) +++ trunk/esigate-core/src/main/java/org/esigate/http/HttpClientRequestExecutor.java 2014-01-17 14:38:11 UTC (rev 1542) @@ -109,7 +109,7 @@ HttpClientRequestExecutor httpClientHelper = new HttpClientRequestExecutor(); httpClientHelper.eventManager = eventManager; httpClientHelper.preserveHost = Parameters.PRESERVE_HOST.getValueBoolean(properties); - httpClientHelper.headerManager = new HeaderManager(properties); + httpClientHelper.headerManager = new HeaderManager(); if (cookieManager == null) { cookieManager = ExtensionFactory.getExtension(properties, Parameters.COOKIE_MANAGER, driver); } Modified: trunk/esigate-core/src/main/java/org/esigate/util/FilterList.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/util/FilterList.java 2014-01-17 10:08:47 UTC (rev 1541) +++ trunk/esigate-core/src/main/java/org/esigate/util/FilterList.java 2014-01-17 14:38:11 UTC (rev 1542) @@ -1,6 +1,5 @@ package org.esigate.util; -import java.util.Collection; import java.util.Set; import java.util.TreeSet; @@ -21,23 +20,22 @@ * everything, this method will have no effect. * * @param toAdd - * String tokens to add to the list. This argument can be: + * String token to add to the list. This argument can be: * <ul> * <li>A single String token</li> - * <li>A comma-separated list of String tokens</li> * <li>* (in this case the list will then act as if it contained any token but you will be able to make * except some tokens using the remove method)</li> * </ul> */ - public void add(Collection<String> toAdd) { + public void add(String toAdd) { if (toAdd.contains("*")) { set.clear(); defaultContains = true; } else { if (!defaultContains) { - set.addAll(toAdd); + set.add(toAdd); } else { - set.removeAll(toAdd); + set.remove(toAdd); } } } @@ -50,19 +48,18 @@ * String tokens to add to the list. This argument can be: * <ul> * <li>A single String token</li> - * <li>A comma-separated list of String tokens</li> * <li>* (in this case the list will then be empty again)</li> * </ul> */ - public void remove(Collection<String> toRemove) { + public void remove(String toRemove) { if (toRemove.contains("*")) { set.clear(); defaultContains = false; } else { if (defaultContains) { - set.addAll(toRemove); + set.add(toRemove); } else { - set.removeAll(toRemove); + set.remove(toRemove); } } } Modified: trunk/esigate-core/src/main/java/org/esigate/util/PropertiesUtil.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/util/PropertiesUtil.java 2014-01-17 10:08:47 UTC (rev 1541) +++ trunk/esigate-core/src/main/java/org/esigate/util/PropertiesUtil.java 2014-01-17 14:38:11 UTC (rev 1542) @@ -39,18 +39,6 @@ * * @param properties * @param propertyName - * @return the values - */ - private static Collection<String> getPropertyValueAsList(Properties properties, String propertyName) { - return getPropertyValueAsList(properties, propertyName, null); - } - - /** - * Retrieves a property containing a comma separated list of values, trim them and return them as a Collection of - * String. - * - * @param properties - * @param propertyName * @param defaultValue * @return the values */ @@ -84,37 +72,6 @@ return result; } - /** - * Populates a list based on 2 properties defining tokens to include and tokens to exclude. - * - * @param list - * @param properties - * @param toAddPropertyName - * @param toRemovePropertyName - * @param defaultToAddString - * @param defaultToRemoveString - */ - public static void populate(FilterList list, Properties properties, String toAddPropertyName, - String toRemovePropertyName, String defaultToAddString, String defaultToRemoveString) { - Collection<String> defaultToAdd = toCollection(defaultToAddString); - Collection<String> defaultToRemove = toCollection(defaultToRemoveString); - list.add(defaultToAdd); - list.remove(defaultToRemove); - Collection<String> toAdd = getPropertyValueAsList(properties, toAddPropertyName); - Collection<String> toRemove = getPropertyValueAsList(properties, toRemovePropertyName); - if (toAdd.contains("*") && toRemove.contains("*")) { - throw new ConfigurationException("cannot use * for " + toAddPropertyName + " and " + toRemovePropertyName - + " at the same time"); - } - if (toRemove.contains("*")) { - list.remove(toRemove); - list.add(toAdd); - } else { - list.add(toAdd); - list.remove(toRemove); - } - } - public static int getPropertyValue(Properties props, String name, int defaultValue) { String value = props.getProperty(name); return value != null ? Integer.parseInt(value) : defaultValue; Modified: trunk/esigate-core/src/test/java/org/esigate/http/HeaderManagerTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/http/HeaderManagerTest.java 2014-01-17 10:08:47 UTC (rev 1541) +++ trunk/esigate-core/src/test/java/org/esigate/http/HeaderManagerTest.java 2014-01-17 14:38:11 UTC (rev 1542) @@ -14,21 +14,13 @@ package org.esigate.http; -import java.util.Properties; - import junit.framework.TestCase; -import org.esigate.Parameters; - public class HeaderManagerTest extends TestCase { - private Properties properties; private HeaderManager headerManager; public void testIsBlackListed() { - // by default only DriverConfiguration#DEFAULT_BLACK_LISTED_HEADERS are - // blacklisted - properties = new Properties(); - headerManager = new HeaderManager(properties); + headerManager = new HeaderManager(); assertRequestHeaderIsBlacklisted("Content-Length", true); assertRequestHeaderIsBlacklisted("Content-Length".toUpperCase(), true); @@ -43,27 +35,6 @@ assertRequestHeaderIsBlacklisted("TE", true); assertResponseHeaderIsBlacklisted("Trailer", true); assertRequestHeaderIsBlacklisted("Upgrade", true); - - // blacklisted headers are specified via 'blackListedHeaders' property - // -> they are merged with default - properties = new Properties(); - properties.setProperty(Parameters.DISCARD_REQUEST_HEADERS.getName(), "header"); - headerManager = new HeaderManager(properties); - assertRequestHeaderIsBlacklisted("Content-Length", true); - assertRequestHeaderIsBlacklisted("Content-Length".toUpperCase(), true); - assertRequestHeaderIsBlacklisted("Content-Length".toLowerCase(), true); - assertRequestHeaderIsBlacklisted("Transfer-Encoding", true); - assertResponseHeaderIsBlacklisted("Set-Cookie", true); - assertRequestHeaderIsBlacklisted("Cookie", true); - assertRequestHeaderIsBlacklisted("Connection", true); - assertResponseHeaderIsBlacklisted("Keep-Alive", true); - assertResponseHeaderIsBlacklisted("Proxy-Authenticate", true); - assertRequestHeaderIsBlacklisted("Proxy-Authorization", true); - assertRequestHeaderIsBlacklisted("TE", true); - assertResponseHeaderIsBlacklisted("Trailer", true); - assertRequestHeaderIsBlacklisted("Upgrade", true); - assertRequestHeaderIsBlacklisted("header", true); - assertRequestHeaderIsBlacklisted("header".toUpperCase(), true); } private void assertRequestHeaderIsBlacklisted(String header, boolean blacklisted) { @@ -76,36 +47,4 @@ !headerManager.isForwardedResponseHeader(header), blacklisted); } - public void testDiscardRequestHeader() { - properties = new Properties(); - properties.put(Parameters.DISCARD_REQUEST_HEADERS.getName(), "dummy1,dummy2"); - headerManager = new HeaderManager(properties); - assertFalse("Header should be discarded", headerManager.isForwardedRequestHeader("dummy1")); - assertFalse("Header should be discarded", headerManager.isForwardedRequestHeader("dummy2")); - assertTrue("Header should be forwarded", headerManager.isForwardedRequestHeader("dummy3")); - } - - public void testForwardRequestHeader() { - properties = new Properties(); - properties.put(Parameters.FORWARD_REQUEST_HEADERS.getName(), "Authorization"); - headerManager = new HeaderManager(properties); - assertTrue("Header should be forwarded", headerManager.isForwardedRequestHeader("Authorization")); - } - - public void testDiscardResponseHeader() { - properties = new Properties(); - properties.put(Parameters.DISCARD_RESPONSE_HEADERS.getName(), "dummy1,dummy2"); - headerManager = new HeaderManager(properties); - assertFalse("Header should be discarded", headerManager.isForwardedResponseHeader("dummy1")); - assertFalse("Header should be discarded", headerManager.isForwardedResponseHeader("dummy2")); - assertTrue("Header should be forwarded", headerManager.isForwardedResponseHeader("dummy3")); - } - - public void testForwardResponseHeader() { - properties = new Properties(); - properties.put(Parameters.FORWARD_RESPONSE_HEADERS.getName(), "WWW-Authenticate"); - headerManager = new HeaderManager(properties); - assertTrue("Header should be forwarded", headerManager.isForwardedResponseHeader("WWW-Authenticate")); - } - } Modified: trunk/esigate-core/src/test/java/org/esigate/http/XForwardedHeadersTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/http/XForwardedHeadersTest.java 2014-01-17 10:08:47 UTC (rev 1541) +++ trunk/esigate-core/src/test/java/org/esigate/http/XForwardedHeadersTest.java 2014-01-17 14:38:11 UTC (rev 1542) @@ -63,36 +63,6 @@ } /** - * Discard existing headers and ensure they are correctly replaced by default ones. - * - * @throws Exception - * on error - */ - public void testXForwardedHeadersDiscarded() throws Exception { - Properties properties = new Properties(); - properties.put(Parameters.REMOTE_URL_BASE.getName(), "http://localhost/"); - properties.put(Parameters.DISCARD_REQUEST_HEADERS, "X-Forwarded-For,X-Forwarded-Proto"); - - Driver driver = createMockDriver(properties, new IResponseHandler() { - @Override - public HttpResponse execute(HttpRequest request) { - assertEquals(1, request.getHeaders("X-Forwarded-For").length); - assertEquals("127.0.0.1", request.getFirstHeader("X-Forwarded-For").getValue()); - assertEquals(1, request.getHeaders("X-Forwarded-Proto").length); - assertEquals("http", request.getFirstHeader("X-Forwarded-Proto").getValue()); - return createHttpResponse().status(HttpStatus.SC_OK).reason("OK").build(); - } - }); - - IncomingRequest request = createRequest("http://test.mydomain.fr/foobar/") - .addHeader("X-Forwarded-For", "192.168.0.1").addHeader("X-Forwarded-Proto", "https") - .setRemoteAddr("127.0.0.1").build(); - - driverProxy(driver, request); - - } - - /** * Ensure existing X-Forwarded headers are correctly altered. * <p> * (When Esigate is accessed via HTTPS). Modified: trunk/esigate-core/src/test/java/org/esigate/util/FilterListTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/util/FilterListTest.java 2014-01-17 10:08:47 UTC (rev 1541) +++ trunk/esigate-core/src/test/java/org/esigate/util/FilterListTest.java 2014-01-17 14:38:11 UTC (rev 1542) @@ -1,60 +1,53 @@ package org.esigate.util; -import java.util.Collection; -import java.util.HashSet; - import junit.framework.TestCase; public class FilterListTest extends TestCase { - private static Collection<String> collection(String... values) { - Collection<String> result = new HashSet<String>(); - for (String value : values) { - result.add(value); - } - return result; - } - public void testAdd() { FilterList list = new FilterList(); assertFalse(list.contains("test")); - list.add(collection("test")); + list.add("test"); assertTrue(list.contains("test")); assertFalse(list.contains("test2")); } public void testAddAll() { FilterList list = new FilterList(); - list.add(collection("*")); + list.add("*"); assertTrue(list.contains("test")); } public void testAddRemove() { FilterList list = new FilterList(); - list.add(collection("test")); + list.add("test"); assertTrue(list.contains("test")); - list.remove(collection("test")); + list.remove("test"); assertFalse(list.contains("test")); } public void testAddList() { FilterList list = new FilterList(); - list.add(collection("test", "test2")); + list.add("test"); + list.add("test2"); assertTrue(list.contains("test")); assertTrue(list.contains("test2")); } public void testAddListRemoveAll() { FilterList list = new FilterList(); - list.add(collection("test", "test2")); - list.remove(collection("*")); + list.add("test"); + list.add("test2"); + list.remove("*"); assertFalse(list.contains("test2")); } public void testAddAllRemoveList() { FilterList list = new FilterList(); - list.add(collection("*")); - list.remove(collection("test", "test2", "test3")); + list.add("*"); + list.remove("test"); + list.remove("test2"); + list.remove("test3"); assertFalse(list.contains("test")); assertFalse(list.contains("test2")); assertFalse(list.contains("test3")); @@ -63,7 +56,7 @@ public void testAddCaseInsensitive() { FilterList list = new FilterList(); - list.add(collection("TeSt")); + list.add("TeSt"); assertTrue(list.contains("test")); assertTrue(list.contains("tEst")); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-17 10:08:50
|
Revision: 1541 http://sourceforge.net/p/webassembletool/code/1541 Author: fxbonnet Date: 2014-01-17 10:08:47 +0000 (Fri, 17 Jan 2014) Log Message: ----------- 0000282: Move servlet related code to a separate module "esigate-servlet" https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=282 Property Changed: ---------------- trunk/esigate-servlet/ Index: trunk/esigate-servlet =================================================================== --- trunk/esigate-servlet 2014-01-17 10:04:34 UTC (rev 1540) +++ trunk/esigate-servlet 2014-01-17 10:08:47 UTC (rev 1541) Property changes on: trunk/esigate-servlet ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +target This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-17 10:04:37
|
Revision: 1540 http://sourceforge.net/p/webassembletool/code/1540 Author: fxbonnet Date: 2014-01-17 10:04:34 +0000 (Fri, 17 Jan 2014) Log Message: ----------- 0000282: Move servlet related code to a separate module "esigate-servlet" https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=282 Removed Paths: ------------- trunk/esigate-servlet/target/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-17 10:03:58
|
Revision: 1539 http://sourceforge.net/p/webassembletool/code/1539 Author: fxbonnet Date: 2014-01-17 10:03:55 +0000 (Fri, 17 Jan 2014) Log Message: ----------- 0000282: Move servlet related code to a separate module "esigate-servlet" https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=282 Added Paths: ----------- trunk/esigate-servlet/target/ trunk/esigate-servlet/target/classes/ trunk/esigate-servlet/target/classes/META-INF/ trunk/esigate-servlet/target/classes/META-INF/MANIFEST.MF trunk/esigate-servlet/target/classes/META-INF/maven/ trunk/esigate-servlet/target/classes/META-INF/maven/org.esigate/ trunk/esigate-servlet/target/classes/META-INF/maven/org.esigate/esigate-servlet/ trunk/esigate-servlet/target/classes/META-INF/maven/org.esigate/esigate-servlet/pom.properties trunk/esigate-servlet/target/classes/META-INF/maven/org.esigate/esigate-servlet/pom.xml Removed Paths: ------------- trunk/esigate-servlet/target/ Added: trunk/esigate-servlet/target/classes/META-INF/MANIFEST.MF =================================================================== --- trunk/esigate-servlet/target/classes/META-INF/MANIFEST.MF (rev 0) +++ trunk/esigate-servlet/target/classes/META-INF/MANIFEST.MF 2014-01-17 10:03:55 UTC (rev 1539) @@ -0,0 +1,10 @@ +Manifest-Version: 1.0 +Implementation-Title: esigate-servlet +Implementation-Version: +Implementation-Vendor-Id: org.esigate +Build-Jdk: 1.7.0_17 +Built-By: FXB +Created-By: Maven Integration for Eclipse +Specification-Title: esigate-servlet +Specification-Version: 5.0-SNAPSHOT + Added: trunk/esigate-servlet/target/classes/META-INF/maven/org.esigate/esigate-servlet/pom.properties =================================================================== --- trunk/esigate-servlet/target/classes/META-INF/maven/org.esigate/esigate-servlet/pom.properties (rev 0) +++ trunk/esigate-servlet/target/classes/META-INF/maven/org.esigate/esigate-servlet/pom.properties 2014-01-17 10:03:55 UTC (rev 1539) @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Fri Jan 17 11:03:08 CET 2014 +version=5.0-SNAPSHOT +groupId=org.esigate +m2e.projectName=esigate-servlet +m2e.projectLocation=C\:\\Users\\FXB\\workspaces\\esigate\\esigate\\esigate-servlet +artifactId=esigate-servlet Added: trunk/esigate-servlet/target/classes/META-INF/maven/org.esigate/esigate-servlet/pom.xml =================================================================== --- trunk/esigate-servlet/target/classes/META-INF/maven/org.esigate/esigate-servlet/pom.xml (rev 0) +++ trunk/esigate-servlet/target/classes/META-INF/maven/org.esigate/esigate-servlet/pom.xml 2014-01-17 10:03:55 UTC (rev 1539) @@ -0,0 +1,87 @@ +<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"> + <modelVersion>4.0.0</modelVersion> + <artifactId>esigate-servlet</artifactId> + <name>esigate-servlet</name> + <parent> + <artifactId>esigate</artifactId> + <groupId>org.esigate</groupId> + <version>5.0-SNAPSHOT</version> + </parent> + <dependencies> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + </dependency> + <dependency> + <groupId>org.esigate</groupId> + <artifactId>esigate-core</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpclient</artifactId> + </dependency> + + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <version>1.9.5</version> + <scope>test</scope> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-site-plugin</artifactId> + <configuration> + <reportPlugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <configuration> + <encoding>UTF-8</encoding> + </configuration> + <reports> + <report>javadoc</report> + </reports> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jxr-plugin</artifactId> + </plugin> + <plugin> + <artifactId>maven-surefire-report-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>cobertura-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <version>2.10</version> + <configuration> + <configLocation>../src/main/resources/esigate_checks.xml</configLocation> + <headerLocation>../src/main/resources/LICENSE-2.0.txt</headerLocation> + </configuration> + </plugin> + </reportPlugins> + </configuration> + </plugin> + </plugins> + </build> +</project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-17 10:02:33
|
Revision: 1538 http://sourceforge.net/p/webassembletool/code/1538 Author: fxbonnet Date: 2014-01-17 10:02:26 +0000 (Fri, 17 Jan 2014) Log Message: ----------- 0000282: Move servlet related code to a separate module "esigate-servlet" https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=282 Modified Paths: -------------- trunk/esigate-app-aggregator/pom.xml trunk/esigate-app-casified-aggregator/pom.xml trunk/esigate-app-master/pom.xml trunk/esigate-app-provider/pom.xml trunk/esigate-core/pom.xml trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java trunk/esigate-distribution/pom.xml trunk/esigate-servlet/src/test/java/org/esigate/servlet/impl/HttpServletSessionTest.java trunk/esigate-war/pom.xml trunk/pom.xml trunk/src/site/site.xml trunk/src/site/xdoc/reference.xml trunk/src/site/xdoc/upgrade.xml Added Paths: ----------- trunk/esigate-servlet/ trunk/esigate-servlet/.checkstyle trunk/esigate-servlet/.classpath trunk/esigate-servlet/.project trunk/esigate-servlet/.settings/ trunk/esigate-servlet/.settings/org.eclipse.core.resources.prefs trunk/esigate-servlet/.settings/org.eclipse.jdt.core.prefs trunk/esigate-servlet/.settings/org.eclipse.jdt.ui.prefs trunk/esigate-servlet/.settings/org.eclipse.m2e.core.prefs trunk/esigate-servlet/.settings/org.eclipse.wst.common.component trunk/esigate-servlet/.settings/org.eclipse.wst.common.project.facet.core.xml trunk/esigate-servlet/.settings/org.eclipse.wst.validation.prefs trunk/esigate-servlet/pom.xml trunk/esigate-servlet/src/ trunk/esigate-servlet/src/main/ trunk/esigate-servlet/src/main/java/ trunk/esigate-servlet/src/main/java/org/ trunk/esigate-servlet/src/main/java/org/esigate/ trunk/esigate-servlet/src/main/java/org/esigate/servlet/ trunk/esigate-servlet/src/site/ trunk/esigate-servlet/src/site/site.xml trunk/esigate-servlet/src/site/xdoc/ trunk/esigate-servlet/src/site/xdoc/index.xml trunk/esigate-servlet/src/test/ trunk/esigate-servlet/src/test/java/ trunk/esigate-servlet/src/test/java/org/ trunk/esigate-servlet/src/test/java/org/esigate/ trunk/esigate-servlet/src/test/java/org/esigate/servlet/ trunk/esigate-servlet/src/test/java/org/esigate/servlet/MockHttpServletRequestBuilder.java trunk/esigate-servlet/target/ trunk/esigate-servlet/target/checkstyle-cachefile trunk/esigate-servlet/target/checkstyle-checker.xml trunk/esigate-servlet/target/checkstyle-header.txt trunk/esigate-servlet/target/checkstyle-result.xml trunk/esigate-servlet/target/classes/ trunk/esigate-servlet/target/classes/org/ trunk/esigate-servlet/target/classes/org/esigate/ trunk/esigate-servlet/target/classes/org/esigate/servlet/ trunk/esigate-servlet/target/classes/org/esigate/servlet/HttpServletRequestContext.class trunk/esigate-servlet/target/classes/org/esigate/servlet/ProxyFilter.class trunk/esigate-servlet/target/classes/org/esigate/servlet/ServletExtension.class trunk/esigate-servlet/target/classes/org/esigate/servlet/impl/ trunk/esigate-servlet/target/classes/org/esigate/servlet/impl/DriverSelector.class trunk/esigate-servlet/target/classes/org/esigate/servlet/impl/HttpServletSession.class trunk/esigate-servlet/target/classes/org/esigate/servlet/impl/RequestFactory.class trunk/esigate-servlet/target/classes/org/esigate/servlet/impl/RequestUrl.class trunk/esigate-servlet/target/classes/org/esigate/servlet/impl/ResponseCapturingWrapper$1.class trunk/esigate-servlet/target/classes/org/esigate/servlet/impl/ResponseCapturingWrapper$2.class trunk/esigate-servlet/target/classes/org/esigate/servlet/impl/ResponseCapturingWrapper.class trunk/esigate-servlet/target/classes/org/esigate/servlet/impl/ResponseSender.class trunk/esigate-servlet/target/classes/org/esigate/servlet/user/ trunk/esigate-servlet/target/classes/org/esigate/servlet/user/ConnectorFilter.class trunk/esigate-servlet/target/classes/org/esigate/servlet/user/FilteredRequest$1.class trunk/esigate-servlet/target/classes/org/esigate/servlet/user/FilteredRequest.class trunk/esigate-servlet/target/cobertura/ trunk/esigate-servlet/target/cobertura/cobertura.ser trunk/esigate-servlet/target/esigate-servlet-5.0-SNAPSHOT.jar trunk/esigate-servlet/target/generated-classes/ trunk/esigate-servlet/target/generated-classes/cobertura/ trunk/esigate-servlet/target/generated-classes/cobertura/cobertura.properties trunk/esigate-servlet/target/generated-classes/cobertura/org/ trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/ trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/ trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/HttpServletRequestContext.class trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/ProxyFilter.class trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/ServletExtension.class trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/impl/ trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/impl/DriverSelector.class trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/impl/HttpServletSession.class trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/impl/RequestFactory.class trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/impl/RequestUrl.class trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/impl/ResponseCapturingWrapper$1.class trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/impl/ResponseCapturingWrapper$2.class trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/impl/ResponseCapturingWrapper.class trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/impl/ResponseSender.class trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/user/ trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/user/ConnectorFilter.class trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/user/FilteredRequest$1.class trunk/esigate-servlet/target/generated-classes/cobertura/org/esigate/servlet/user/FilteredRequest.class trunk/esigate-servlet/target/generated-sources/ trunk/esigate-servlet/target/generated-sources/annotations/ trunk/esigate-servlet/target/generated-sources/test-annotations/ trunk/esigate-servlet/target/javadoc-bundle-options/ trunk/esigate-servlet/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml trunk/esigate-servlet/target/javadoc-bundle-options/package-list trunk/esigate-servlet/target/maven-archiver/ trunk/esigate-servlet/target/maven-archiver/pom.properties trunk/esigate-servlet/target/site/ trunk/esigate-servlet/target/site/apidocs/ trunk/esigate-servlet/target/site/apidocs/allclasses-frame.html trunk/esigate-servlet/target/site/apidocs/allclasses-noframe.html trunk/esigate-servlet/target/site/apidocs/constant-values.html trunk/esigate-servlet/target/site/apidocs/deprecated-list.html trunk/esigate-servlet/target/site/apidocs/help-doc.html trunk/esigate-servlet/target/site/apidocs/index-all.html trunk/esigate-servlet/target/site/apidocs/index.html trunk/esigate-servlet/target/site/apidocs/org/ trunk/esigate-servlet/target/site/apidocs/org/esigate/ trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/ trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/HttpServletRequestContext.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/ProxyFilter.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/ServletExtension.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/class-use/ trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/class-use/HttpServletRequestContext.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/class-use/ProxyFilter.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/class-use/ServletExtension.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/ trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/DriverSelector.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/HttpServletSession.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/RequestFactory.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/RequestUrl.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/ResponseCapturingWrapper.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/ResponseSender.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/class-use/ trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/class-use/DriverSelector.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/class-use/HttpServletSession.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/class-use/RequestFactory.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/class-use/RequestUrl.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/class-use/ResponseCapturingWrapper.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/class-use/ResponseSender.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/package-frame.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/package-summary.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/package-tree.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/impl/package-use.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/package-frame.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/package-summary.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/package-tree.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/package-use.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/user/ trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/user/ConnectorFilter.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/user/FilteredRequest.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/user/class-use/ trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/user/class-use/ConnectorFilter.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/user/class-use/FilteredRequest.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/user/package-frame.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/user/package-summary.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/user/package-tree.html trunk/esigate-servlet/target/site/apidocs/org/esigate/servlet/user/package-use.html trunk/esigate-servlet/target/site/apidocs/overview-frame.html trunk/esigate-servlet/target/site/apidocs/overview-summary.html trunk/esigate-servlet/target/site/apidocs/overview-tree.html trunk/esigate-servlet/target/site/apidocs/package-list trunk/esigate-servlet/target/site/apidocs/resources/ trunk/esigate-servlet/target/site/apidocs/resources/background.gif trunk/esigate-servlet/target/site/apidocs/resources/tab.gif trunk/esigate-servlet/target/site/apidocs/resources/titlebar.gif trunk/esigate-servlet/target/site/apidocs/resources/titlebar_end.gif trunk/esigate-servlet/target/site/apidocs/stylesheet.css trunk/esigate-servlet/target/site/checkstyle.html trunk/esigate-servlet/target/site/checkstyle.rss trunk/esigate-servlet/target/site/cobertura/ trunk/esigate-servlet/target/site/cobertura/css/ trunk/esigate-servlet/target/site/cobertura/css/help.css trunk/esigate-servlet/target/site/cobertura/css/main.css trunk/esigate-servlet/target/site/cobertura/css/sortabletable.css trunk/esigate-servlet/target/site/cobertura/css/source-viewer.css trunk/esigate-servlet/target/site/cobertura/css/tooltip.css trunk/esigate-servlet/target/site/cobertura/frame-packages.html trunk/esigate-servlet/target/site/cobertura/frame-sourcefiles-org.esigate.servlet.html trunk/esigate-servlet/target/site/cobertura/frame-sourcefiles-org.esigate.servlet.impl.html trunk/esigate-servlet/target/site/cobertura/frame-sourcefiles-org.esigate.servlet.user.html trunk/esigate-servlet/target/site/cobertura/frame-sourcefiles.html trunk/esigate-servlet/target/site/cobertura/frame-summary-org.esigate.servlet.html trunk/esigate-servlet/target/site/cobertura/frame-summary-org.esigate.servlet.impl.html trunk/esigate-servlet/target/site/cobertura/frame-summary-org.esigate.servlet.user.html trunk/esigate-servlet/target/site/cobertura/frame-summary.html trunk/esigate-servlet/target/site/cobertura/help.html trunk/esigate-servlet/target/site/cobertura/images/ trunk/esigate-servlet/target/site/cobertura/images/blank.png trunk/esigate-servlet/target/site/cobertura/images/downsimple.png trunk/esigate-servlet/target/site/cobertura/images/upsimple.png trunk/esigate-servlet/target/site/cobertura/index.html trunk/esigate-servlet/target/site/cobertura/js/ trunk/esigate-servlet/target/site/cobertura/js/customsorttypes.js trunk/esigate-servlet/target/site/cobertura/js/popup.js trunk/esigate-servlet/target/site/cobertura/js/sortabletable.js trunk/esigate-servlet/target/site/cobertura/js/stringbuilder.js trunk/esigate-servlet/target/site/cobertura/org.esigate.servlet.HttpServletRequestContext.html trunk/esigate-servlet/target/site/cobertura/org.esigate.servlet.ProxyFilter.html trunk/esigate-servlet/target/site/cobertura/org.esigate.servlet.ServletExtension.html trunk/esigate-servlet/target/site/cobertura/org.esigate.servlet.impl.DriverSelector.html trunk/esigate-servlet/target/site/cobertura/org.esigate.servlet.impl.HttpServletSession.html trunk/esigate-servlet/target/site/cobertura/org.esigate.servlet.impl.RequestFactory.html trunk/esigate-servlet/target/site/cobertura/org.esigate.servlet.impl.RequestUrl.html trunk/esigate-servlet/target/site/cobertura/org.esigate.servlet.impl.ResponseCapturingWrapper.html trunk/esigate-servlet/target/site/cobertura/org.esigate.servlet.impl.ResponseSender.html trunk/esigate-servlet/target/site/cobertura/org.esigate.servlet.user.ConnectorFilter.html trunk/esigate-servlet/target/site/cobertura/org.esigate.servlet.user.FilteredRequest.html trunk/esigate-servlet/target/site/css/ trunk/esigate-servlet/target/site/css/maven-base.css trunk/esigate-servlet/target/site/css/maven-theme.css trunk/esigate-servlet/target/site/css/print.css trunk/esigate-servlet/target/site/css/site.css trunk/esigate-servlet/target/site/images/ trunk/esigate-servlet/target/site/images/bg.jpg trunk/esigate-servlet/target/site/images/bg_h2.gif trunk/esigate-servlet/target/site/images/bg_nav.gif trunk/esigate-servlet/target/site/images/collapsed.gif trunk/esigate-servlet/target/site/images/expanded.gif trunk/esigate-servlet/target/site/images/external.png trunk/esigate-servlet/target/site/images/icon_error_sml.gif trunk/esigate-servlet/target/site/images/icon_info_sml.gif trunk/esigate-servlet/target/site/images/icon_success_sml.gif trunk/esigate-servlet/target/site/images/icon_warning_sml.gif trunk/esigate-servlet/target/site/images/logo.jpg trunk/esigate-servlet/target/site/images/logos/ trunk/esigate-servlet/target/site/images/logos/build-by-maven-black.png trunk/esigate-servlet/target/site/images/logos/build-by-maven-white.png trunk/esigate-servlet/target/site/images/logos/maven-feather.png trunk/esigate-servlet/target/site/images/newwindow.png trunk/esigate-servlet/target/site/images/puce.gif trunk/esigate-servlet/target/site/images/rss.png trunk/esigate-servlet/target/site/index.html trunk/esigate-servlet/target/site/project-reports.html trunk/esigate-servlet/target/site/surefire-report.html trunk/esigate-servlet/target/site/xref/ trunk/esigate-servlet/target/site/xref/allclasses-frame.html trunk/esigate-servlet/target/site/xref/index.html trunk/esigate-servlet/target/site/xref/org/ trunk/esigate-servlet/target/site/xref/org/esigate/ trunk/esigate-servlet/target/site/xref/org/esigate/servlet/ trunk/esigate-servlet/target/site/xref/org/esigate/servlet/HttpServletRequestContext.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/ProxyFilter.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/ServletExtension.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/impl/ trunk/esigate-servlet/target/site/xref/org/esigate/servlet/impl/DriverSelector.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/impl/HttpServletSession.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/impl/RequestFactory.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/impl/RequestUrl.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/impl/ResponseCapturingWrapper.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/impl/ResponseSender.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/impl/package-frame.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/impl/package-summary.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/package-frame.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/package-summary.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/user/ trunk/esigate-servlet/target/site/xref/org/esigate/servlet/user/ConnectorFilter.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/user/FilteredRequest.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/user/package-frame.html trunk/esigate-servlet/target/site/xref/org/esigate/servlet/user/package-summary.html trunk/esigate-servlet/target/site/xref/overview-frame.html trunk/esigate-servlet/target/site/xref/overview-summary.html trunk/esigate-servlet/target/site/xref/stylesheet.css trunk/esigate-servlet/target/site/xref-test/ trunk/esigate-servlet/target/site/xref-test/allclasses-frame.html trunk/esigate-servlet/target/site/xref-test/index.html trunk/esigate-servlet/target/site/xref-test/org/ trunk/esigate-servlet/target/site/xref-test/org/esigate/ trunk/esigate-servlet/target/site/xref-test/org/esigate/servlet/ trunk/esigate-servlet/target/site/xref-test/org/esigate/servlet/MockHttpServletRequestBuilder.html trunk/esigate-servlet/target/site/xref-test/org/esigate/servlet/MockHttpServletResponse.html trunk/esigate-servlet/target/site/xref-test/org/esigate/servlet/ProxyFilterTest.html trunk/esigate-servlet/target/site/xref-test/org/esigate/servlet/impl/ trunk/esigate-servlet/target/site/xref-test/org/esigate/servlet/impl/HttpServletSessionTest.html trunk/esigate-servlet/target/site/xref-test/org/esigate/servlet/impl/ResponseCapturingWrapperTest.html trunk/esigate-servlet/target/site/xref-test/org/esigate/servlet/impl/ResponseSenderTest.html trunk/esigate-servlet/target/site/xref-test/org/esigate/servlet/impl/package-frame.html trunk/esigate-servlet/target/site/xref-test/org/esigate/servlet/impl/package-summary.html trunk/esigate-servlet/target/site/xref-test/org/esigate/servlet/package-frame.html trunk/esigate-servlet/target/site/xref-test/org/esigate/servlet/package-summary.html trunk/esigate-servlet/target/site/xref-test/overview-frame.html trunk/esigate-servlet/target/site/xref-test/overview-summary.html trunk/esigate-servlet/target/site/xref-test/stylesheet.css trunk/esigate-servlet/target/surefire-reports/ trunk/esigate-servlet/target/surefire-reports/TEST-org.esigate.servlet.ProxyFilterTest.xml trunk/esigate-servlet/target/surefire-reports/TEST-org.esigate.servlet.impl.HttpServletSessionTest.xml trunk/esigate-servlet/target/surefire-reports/TEST-org.esigate.servlet.impl.ResponseCapturingWrapperTest.xml trunk/esigate-servlet/target/surefire-reports/TEST-org.esigate.servlet.impl.ResponseSenderTest.xml trunk/esigate-servlet/target/surefire-reports/org.esigate.servlet.ProxyFilterTest.txt trunk/esigate-servlet/target/surefire-reports/org.esigate.servlet.impl.HttpServletSessionTest.txt trunk/esigate-servlet/target/surefire-reports/org.esigate.servlet.impl.ResponseCapturingWrapperTest.txt trunk/esigate-servlet/target/surefire-reports/org.esigate.servlet.impl.ResponseSenderTest.txt trunk/esigate-servlet/target/test-classes/ trunk/esigate-servlet/target/test-classes/org/ trunk/esigate-servlet/target/test-classes/org/esigate/ trunk/esigate-servlet/target/test-classes/org/esigate/servlet/ trunk/esigate-servlet/target/test-classes/org/esigate/servlet/MockHttpServletRequestBuilder.class trunk/esigate-servlet/target/test-classes/org/esigate/servlet/MockHttpServletResponse$1.class trunk/esigate-servlet/target/test-classes/org/esigate/servlet/MockHttpServletResponse.class trunk/esigate-servlet/target/test-classes/org/esigate/servlet/ProxyFilterTest$TestServletConfig.class trunk/esigate-servlet/target/test-classes/org/esigate/servlet/ProxyFilterTest.class trunk/esigate-servlet/target/test-classes/org/esigate/servlet/impl/ trunk/esigate-servlet/target/test-classes/org/esigate/servlet/impl/HttpServletSessionTest$1.class trunk/esigate-servlet/target/test-classes/org/esigate/servlet/impl/HttpServletSessionTest.class trunk/esigate-servlet/target/test-classes/org/esigate/servlet/impl/ResponseCapturingWrapperTest.class trunk/esigate-servlet/target/test-classes/org/esigate/servlet/impl/ResponseSenderTest.class Removed Paths: ------------- trunk/esigate-core/src/main/java/org/esigate/servlet/ trunk/esigate-core/src/test/java/org/esigate/http/MockHttpServletRequestBuilder.java trunk/esigate-core/src/test/java/org/esigate/servlet/ Modified: trunk/esigate-app-aggregator/pom.xml =================================================================== --- trunk/esigate-app-aggregator/pom.xml 2014-01-16 10:14:04 UTC (rev 1537) +++ trunk/esigate-app-aggregator/pom.xml 2014-01-17 10:02:26 UTC (rev 1538) @@ -11,7 +11,7 @@ <dependencies> <dependency> <groupId>org.esigate</groupId> - <artifactId>esigate-core</artifactId> + <artifactId>esigate-servlet</artifactId> </dependency> <dependency> <groupId>org.esigate</groupId> Modified: trunk/esigate-app-casified-aggregator/pom.xml =================================================================== --- trunk/esigate-app-casified-aggregator/pom.xml 2014-01-16 10:14:04 UTC (rev 1537) +++ trunk/esigate-app-casified-aggregator/pom.xml 2014-01-17 10:02:26 UTC (rev 1538) @@ -12,7 +12,7 @@ <dependencies> <dependency> <groupId>org.esigate</groupId> - <artifactId>esigate-core</artifactId> + <artifactId>esigate-servlet</artifactId> </dependency> <dependency> <groupId>org.esigate</groupId> Modified: trunk/esigate-app-master/pom.xml =================================================================== --- trunk/esigate-app-master/pom.xml 2014-01-16 10:14:04 UTC (rev 1537) +++ trunk/esigate-app-master/pom.xml 2014-01-17 10:02:26 UTC (rev 1538) @@ -11,7 +11,7 @@ <dependencies> <dependency> <groupId>org.esigate</groupId> - <artifactId>esigate-core</artifactId> + <artifactId>esigate-servlet</artifactId> </dependency> <dependency> <groupId>org.esigate</groupId> Modified: trunk/esigate-app-provider/pom.xml =================================================================== --- trunk/esigate-app-provider/pom.xml 2014-01-16 10:14:04 UTC (rev 1537) +++ trunk/esigate-app-provider/pom.xml 2014-01-17 10:02:26 UTC (rev 1538) @@ -31,7 +31,7 @@ <dependencies> <dependency> <groupId>org.esigate</groupId> - <artifactId>esigate-core</artifactId> + <artifactId>esigate-servlet</artifactId> </dependency> <dependency> <groupId>javax.servlet</groupId> Modified: trunk/esigate-core/pom.xml =================================================================== --- trunk/esigate-core/pom.xml 2014-01-16 10:14:04 UTC (rev 1537) +++ trunk/esigate-core/pom.xml 2014-01-17 10:02:26 UTC (rev 1538) @@ -10,11 +10,6 @@ </parent> <dependencies> <dependency> - <groupId>javax.servlet</groupId> - <artifactId>servlet-api</artifactId> - </dependency> - - <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> </dependency> Modified: trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java 2014-01-16 10:14:04 UTC (rev 1537) +++ trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java 2014-01-17 10:02:26 UTC (rev 1538) @@ -20,8 +20,6 @@ import java.util.Properties; import java.util.zip.GZIPOutputStream; -import javax.servlet.http.HttpServletResponse; - import junit.framework.TestCase; import org.apache.commons.io.output.NullOutputStream; @@ -105,7 +103,7 @@ ByteArrayEntity httpEntity = new ByteArrayEntity(compressedBytes); httpEntity.setContentType("text/html; charset=ISO-8859-1"); httpEntity.setContentEncoding("gzip"); - StatusLine statusLine = new BasicStatusLine(new ProtocolVersion("p", 1, 2), HttpServletResponse.SC_OK, "OK"); + StatusLine statusLine = new BasicStatusLine(new ProtocolVersion("p", 1, 2), HttpStatus.SC_OK, "OK"); BasicHttpResponse httpResponse = new BasicHttpResponse(statusLine); httpResponse.addHeader("Content-type", "text/html; charset=ISO-8859-1"); httpResponse.addHeader("Content-encoding", "gzip"); @@ -443,8 +441,7 @@ sendRequestAndCheckHostHeader("http://www.foo.com:123", "http://localhost:8080", "www.bar.com:345", "www.bar.com:345"); // Should be copied as is even when default port - sendRequestAndCheckHostHeader("http://www.foo.com", "http://localhost:8080", - "www.foo.com:80", "www.foo.com:80"); + sendRequestAndCheckHostHeader("http://www.foo.com", "http://localhost:8080", "www.foo.com:80", "www.foo.com:80"); } /** Deleted: trunk/esigate-core/src/test/java/org/esigate/http/MockHttpServletRequestBuilder.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/http/MockHttpServletRequestBuilder.java 2014-01-16 10:14:04 UTC (rev 1537) +++ trunk/esigate-core/src/test/java/org/esigate/http/MockHttpServletRequestBuilder.java 2014-01-17 10:02:26 UTC (rev 1538) @@ -1,116 +0,0 @@ -/* - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package org.esigate.http; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.apache.http.Header; -import org.apache.http.message.BasicHeader; -import org.mockito.Mockito; - -/** - * Fluent-style builder for mocked HttpServletRequest. - * - * <p> - * Default request is - * - * <pre> - * GET http://localhost/ HTTP/1.1 - * </pre> - * - * @author Nicolas Richeton - * - */ -public class MockHttpServletRequestBuilder { - private String protocolVersion = "HTTP/1.1"; - private String uriString = "http://localhost/"; - private List<Header> headers = new ArrayList<Header>(); - private String method = "GET"; - private Map<String, Object> session = null; - - public MockHttpServletRequestBuilder uri(String uri) { - this.uriString = uri; - return this; - } - - /** - * Duplicate headers are not supported currently. - * - * @param name - * @param value - * @return this - */ - public MockHttpServletRequestBuilder header(String name, String value) { - this.headers.add(new BasicHeader(name, value)); - return this; - } - - public MockHttpServletRequestBuilder method(String paramMethod) { - this.method = paramMethod; - return this; - } - - public MockHttpServletRequestBuilder protocolVersion(String paramProtocolVersion) { - this.protocolVersion = paramProtocolVersion; - return this; - } - - /** - * Session values are not yet supported. Null or existing object are honored. - * - * @param paramSession - * @return this - */ - public MockHttpServletRequestBuilder session(Map<String, Object> paramSession) { - this.session = paramSession; - return this; - } - - /** - * Build the request as defined in the current builder. - * - * @return the request - */ - public HttpServletRequest build() { - HttpServletRequest request = Mockito.mock(HttpServletRequest.class); - - Mockito.when(request.getMethod()).thenReturn(this.method); - Mockito.when(request.getProtocol()).thenReturn(this.protocolVersion); - Mockito.when(request.getRequestURI()).thenReturn(this.uriString); - - Mockito.when(request.getHeaderNames()).thenReturn(Collections.enumeration(headers)); - for (Header h : headers) { - List<String> hresult = new ArrayList<String>(); - hresult.add(h.getValue()); - Mockito.when(request.getHeaders(h.getName())).thenReturn(Collections.enumeration(hresult)); - Mockito.when(request.getHeader(h.getName())).thenReturn(h.getValue()); - } - - if (session == null) { - Mockito.when(request.getSession()).thenReturn(null); - } else { - HttpSession sessionMock = Mockito.mock(HttpSession.class); - Mockito.when(request.getSession()).thenReturn(sessionMock); - } - return request; - } -} Modified: trunk/esigate-distribution/pom.xml =================================================================== --- trunk/esigate-distribution/pom.xml 2014-01-16 10:14:04 UTC (rev 1537) +++ trunk/esigate-distribution/pom.xml 2014-01-17 10:02:26 UTC (rev 1538) @@ -15,6 +15,10 @@ </dependency> <dependency> <groupId>org.esigate</groupId> + <artifactId>esigate-servlet</artifactId> + </dependency> + <dependency> + <groupId>org.esigate</groupId> <artifactId>esigate-cas</artifactId> </dependency> <dependency> Added: trunk/esigate-servlet/.checkstyle =================================================================== --- trunk/esigate-servlet/.checkstyle (rev 0) +++ trunk/esigate-servlet/.checkstyle 2014-01-17 10:02:26 UTC (rev 1538) @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false"> + <local-check-config name="esigate_checks.xml" location="/esigate/src/main/resources/esigate_checks.xml" type="project" description=""> + <additional-data name="protect-config-file" value="false"/> + </local-check-config> + <fileset name="all" enabled="true" check-config-name="esigate_checks.xml" local="true"> + <file-match-pattern match-pattern="." include-pattern="true"/> + </fileset> +</fileset-config> Added: trunk/esigate-servlet/.classpath =================================================================== --- trunk/esigate-servlet/.classpath (rev 0) +++ trunk/esigate-servlet/.classpath 2014-01-17 10:02:26 UTC (rev 1538) @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + <attribute name="org.eclipse.jst.component.nondependency" value=""/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> Added: trunk/esigate-servlet/.project =================================================================== --- trunk/esigate-servlet/.project (rev 0) +++ trunk/esigate-servlet/.project 2014-01-17 10:02:26 UTC (rev 1538) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>esigate-servlet</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.wst.common.project.facet.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.wst.validation.validationbuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jem.workbench.JavaEMFNature</nature> + <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.wst.common.project.facet.core.nature</nature> + </natures> +</projectDescription> Added: trunk/esigate-servlet/.settings/org.eclipse.core.resources.prefs =================================================================== --- trunk/esigate-servlet/.settings/org.eclipse.core.resources.prefs (rev 0) +++ trunk/esigate-servlet/.settings/org.eclipse.core.resources.prefs 2014-01-17 10:02:26 UTC (rev 1538) @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/test/java=UTF-8 +encoding/<project>=UTF-8 Added: trunk/esigate-servlet/.settings/org.eclipse.jdt.core.prefs =================================================================== --- trunk/esigate-servlet/.settings/org.eclipse.jdt.core.prefs (rev 0) +++ trunk/esigate-servlet/.settings/org.eclipse.jdt.core.prefs 2014-01-17 10:02:26 UTC (rev 1538) @@ -0,0 +1,288 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.6 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=1 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=80 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=false +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true Added: trunk/esigate-servlet/.settings/org.eclipse.jdt.ui.prefs =================================================================== --- trunk/esigate-servlet/.settings/org.eclipse.jdt.ui.prefs (rev 0) +++ trunk/esigate-servlet/.settings/org.eclipse.jdt.ui.prefs 2014-01-17 10:02:26 UTC (rev 1538) @@ -0,0 +1,56 @@ +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=tr... [truncated message content] |
From: <nri...@us...> - 2014-01-16 10:14:09
|
Revision: 1537 http://sourceforge.net/p/webassembletool/code/1537 Author: nricheton Date: 2014-01-16 10:14:04 +0000 (Thu, 16 Jan 2014) Log Message: ----------- 0000286: ResourceFixupRenderer StringIndexOutOfBoundsException https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=286 Modified Paths: -------------- trunk/esigate-core/src/main/java/org/esigate/renderers/ResourceFixupRenderer.java trunk/esigate-core/src/test/java/org/esigate/renderers/ResourceFixupRendererTest.java Modified: trunk/esigate-core/src/main/java/org/esigate/renderers/ResourceFixupRenderer.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/renderers/ResourceFixupRenderer.java 2014-01-16 10:06:17 UTC (rev 1536) +++ trunk/esigate-core/src/main/java/org/esigate/renderers/ResourceFixupRenderer.java 2014-01-16 10:14:04 UTC (rev 1537) @@ -15,6 +15,8 @@ package org.esigate.renderers; +import static org.apache.commons.lang3.StringUtils.isNotEmpty; + import java.io.IOException; import java.io.Writer; import java.util.regex.Matcher; @@ -54,7 +56,7 @@ private String contextAdd = null; private String contextRemove = null; /** - * Page path without the filename + * Page path without the filename. */ private String pagePath = null; @@ -80,17 +82,17 @@ * <li>images/image.png is replaced by /context/images/image.png</li> * </ul> * - * @param baseUrl - * + * @param pBaseUrl + * Base url (same as configured in provider). * @param visibleBaseUrl - * Base url (same as configured in provider). + * Visible Base url (same as configured in provider). Will replace the base url in rewritten urls. * @param pageFullPath * Page as used in tag lib or using API - * @param mode + * @param pMode * ResourceFixupRenderer.ABSOLUTE or ResourceFixupRenderer.RELATIVE */ - public ResourceFixupRenderer(String baseUrl, String visibleBaseUrl, String pageFullPath, int mode) { - this(baseUrl, visibleBaseUrl, pageFullPath, mode, true); + public ResourceFixupRenderer(String pBaseUrl, String visibleBaseUrl, String pageFullPath, int pMode) { + this(pBaseUrl, visibleBaseUrl, pageFullPath, pMode, true); } /** @@ -108,10 +110,10 @@ * <li>images/image.png is replaced by /context/images/image.png</li> * </ul> * - * @param baseUrl - * + * @param baseUrl + * Base url (same as configured in provider). * @param visibleBaseUrl - * Base url (same as configured in provider). + * Visible Base url (same as configured in provider). Will replace the base url in rewritten urls. * @param pageFullPath * Page as used in tag lib or using API * @param mode @@ -140,7 +142,7 @@ cleanBaseUrl = removeLeadingSlash(cleanBaseUrl); String cleanPageFullPath = pageFullPath; - if (cleanPageFullPath.charAt(0) == SLASH) { + if (isNotEmpty(cleanPageFullPath) && cleanPageFullPath.charAt(0) == SLASH) { cleanPageFullPath = cleanPageFullPath.substring(1); } @@ -170,13 +172,20 @@ } } + /** + * Remove the last character if it is a slash. + * + * @param src + * url. + * @return url without an ending slash. + */ private String removeLeadingSlash(String src) { int lastCharPosition = src.length() - 1; if (src.charAt(lastCharPosition) != SLASH) { return src; - } else { - return src.substring(0, lastCharPosition); } + + return src.substring(0, lastCharPosition); } /** Modified: trunk/esigate-core/src/test/java/org/esigate/renderers/ResourceFixupRendererTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/renderers/ResourceFixupRendererTest.java 2014-01-16 10:06:17 UTC (rev 1536) +++ trunk/esigate-core/src/test/java/org/esigate/renderers/ResourceFixupRendererTest.java 2014-01-16 10:14:04 UTC (rev 1537) @@ -16,6 +16,7 @@ package org.esigate.renderers; import java.io.IOException; +import java.io.StringWriter; import java.io.Writer; import junit.framework.TestCase; @@ -283,5 +284,28 @@ tested.render(null, input, out); assertEquals(expectedOutputAbsolute, out.toString()); } + + /** + * Test for 0000286: ResourceFixupRenderer StringIndexOutOfBoundsException + * <p> + * Index out of range if page paramter is empty. + * + * @throws IOException + */ + public void testBug286() throws IOException { + String base = "https://myapplication"; + String page = ""; + final String input = "<html></html>"; + // Relative test + Writer out = new StringWriter(); + ResourceFixupRenderer tested = new ResourceFixupRenderer(base, base, page, ResourceFixupRenderer.RELATIVE); + tested.render(null, input, out); + + // Absolute test + out = new StringWriter(); + tested = new ResourceFixupRenderer(base, base, page, ResourceFixupRenderer.ABSOLUTE); + tested.render(null, input, out); + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nri...@us...> - 2014-01-16 10:06:21
|
Revision: 1536 http://sourceforge.net/p/webassembletool/code/1536 Author: nricheton Date: 2014-01-16 10:06:17 +0000 (Thu, 16 Jan 2014) Log Message: ----------- 0000286: ResourceFixupRenderer StringIndexOutOfBoundsException https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=286 Modified Paths: -------------- branches/esigate-4.x/esigate-core/src/main/java/org/esigate/renderers/ResourceFixupRenderer.java branches/esigate-4.x/esigate-core/src/test/java/org/esigate/renderers/ResourceFixupRendererTest.java Modified: branches/esigate-4.x/esigate-core/src/main/java/org/esigate/renderers/ResourceFixupRenderer.java =================================================================== --- branches/esigate-4.x/esigate-core/src/main/java/org/esigate/renderers/ResourceFixupRenderer.java 2014-01-15 11:14:09 UTC (rev 1535) +++ branches/esigate-4.x/esigate-core/src/main/java/org/esigate/renderers/ResourceFixupRenderer.java 2014-01-16 10:06:17 UTC (rev 1536) @@ -15,6 +15,8 @@ package org.esigate.renderers; +import static org.apache.commons.lang3.StringUtils.isNotEmpty; + import java.io.IOException; import java.io.Writer; import java.net.URI; @@ -31,8 +33,10 @@ * This renderer "fixes" links to resources, images and pages in pages retrieved * by esigate : * <ul> - * <li>Current-path-relative urls are converted to full path relative urls ( img/test.img -> /myapp/curentpath/img/test.img)</li> - * <li>All relative urls can be converted to absolute urls (including server name)</li> + * <li>Current-path-relative urls are converted to full path relative urls ( + * img/test.img -> /myapp/curentpath/img/test.img)</li> + * <li>All relative urls can be converted to absolute urls (including server + * name)</li> * </ul> * * This enables use of esigate without any special modifications of the @@ -149,7 +153,7 @@ cleanBaseUrl = removeLeadingSlash(cleanBaseUrl); String cleanPageFullPath = pageFullPath; - if (cleanPageFullPath.charAt(0) == SLASH) { + if (isNotEmpty(cleanPageFullPath) && cleanPageFullPath.charAt(0) == SLASH) { cleanPageFullPath = cleanPageFullPath.substring(1); } Modified: branches/esigate-4.x/esigate-core/src/test/java/org/esigate/renderers/ResourceFixupRendererTest.java =================================================================== --- branches/esigate-4.x/esigate-core/src/test/java/org/esigate/renderers/ResourceFixupRendererTest.java 2014-01-15 11:14:09 UTC (rev 1535) +++ branches/esigate-4.x/esigate-core/src/test/java/org/esigate/renderers/ResourceFixupRendererTest.java 2014-01-16 10:06:17 UTC (rev 1536) @@ -263,4 +263,27 @@ assertEquals(expectedOutputAbsolute, out.toString()); } + /** + * Test for 0000286: ResourceFixupRenderer StringIndexOutOfBoundsException + * <p> + * Index out of range if page paramter is empty. + * + * @throws IOException + */ + public void testBug286() throws IOException { + String base = "https://myapplication"; + String page = ""; + final String input = "<html></html>"; + + // Relative test + Writer out = new StringWriter(); + ResourceFixupRenderer tested = new ResourceFixupRenderer(base, base, page, ResourceFixupRenderer.RELATIVE); + tested.render(null, input, out); + + // Absolute test + out = new StringWriter(); + tested = new ResourceFixupRenderer(base, base, page, ResourceFixupRenderer.ABSOLUTE); + tested.render(null, input, out); + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-15 11:14:14
|
Revision: 1535 http://sourceforge.net/p/webassembletool/code/1535 Author: fxbonnet Date: 2014-01-15 11:14:09 +0000 (Wed, 15 Jan 2014) Log Message: ----------- 0000218: Move Mediator usage out of Driver#proxy and sub methods https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=218 Removed Paths: ------------- trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java Deleted: trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java 2014-01-15 11:04:24 UTC (rev 1534) +++ trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java 2014-01-15 11:14:09 UTC (rev 1535) @@ -1,70 +0,0 @@ -/* - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package org.esigate.test; - -import org.apache.http.HttpHost; -import org.apache.http.HttpResponse; -import org.apache.http.HttpVersion; -import org.apache.http.RequestLine; -import org.apache.http.message.BasicRequestLine; -import org.esigate.api.ContainerRequestMediator; -import org.esigate.http.IncomingRequest; -import org.esigate.util.UriUtils; - -/** - * MockMediator can be used in unit test, instead of {@link org.esigate.servlet.HttpServletMediator}. - * - * @see org.esigate.servlet.HttpServletMediator - * - * @author Francois-Xavier Bonnet - * @author Nicolas Richeton - */ -public class MockMediator implements ContainerRequestMediator { - private HttpResponse httpResponse; - private IncomingRequest httpRequest; - - public MockMediator(String uriString) { - HttpHost httpHost = UriUtils.extractHost(uriString); - String scheme = httpHost.getSchemeName(); - String host = httpHost.getHostName(); - int port = httpHost.getPort(); - RequestLine requestLine = new BasicRequestLine("GET", uriString, HttpVersion.HTTP_1_1); - this.httpRequest = new IncomingRequest(requestLine, this); - - // Remove default ports - if (port == -1 || (port == 80 && "http".equals(scheme)) || (port == 443 && "https".equals(scheme))) { - this.httpRequest.setHeader("Host", host); - } else { - this.httpRequest.setHeader("Host", host + ":" + port); - } - this.httpRequest.setSession(new MockSession()); - - } - - public MockMediator() { - this("http://localhost:8080"); - } - - @Override - public IncomingRequest getHttpRequest() { - return this.httpRequest; - } - - public HttpResponse getHttpResponse() { - return this.httpResponse; - } - -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-15 11:04:31
|
Revision: 1534 http://sourceforge.net/p/webassembletool/code/1534 Author: fxbonnet Date: 2014-01-15 11:04:24 +0000 (Wed, 15 Jan 2014) Log Message: ----------- 0000218: Move Mediator usage out of Driver#proxy and sub methods https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=218 Modified Paths: -------------- trunk/esigate-app-aggregator/src/test/java/org/esigate/test/cases/Bug101ConnectionReleaseTest.java trunk/esigate-app-master/src/main/webapp/user.jsp trunk/esigate-app-master/src/test/resources/user.jsp trunk/esigate-core/src/main/java/org/esigate/HttpErrorPage.java trunk/esigate-core/src/main/java/org/esigate/UserContext.java trunk/esigate-core/src/main/java/org/esigate/http/IncomingRequest.java trunk/esigate-core/src/main/java/org/esigate/http/OutgoingRequest.java trunk/esigate-core/src/main/java/org/esigate/impl/DriverRequest.java trunk/esigate-core/src/main/java/org/esigate/servlet/ProxyFilter.java trunk/esigate-core/src/main/java/org/esigate/servlet/ServletExtension.java trunk/esigate-core/src/main/java/org/esigate/servlet/impl/ResponseCapturingWrapper.java trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java trunk/esigate-core/src/main/java/org/esigate/test/driver/AbstractDriverTestCase.java trunk/esigate-core/src/main/java/org/esigate/vars/VariablesResolver.java trunk/esigate-core/src/test/java/org/esigate/DriverCookieTest.java trunk/esigate-core/src/test/java/org/esigate/DriverFactoryTest.java trunk/esigate-core/src/test/java/org/esigate/DriverTest.java trunk/esigate-core/src/test/java/org/esigate/aggregator/AggregateRendererTest.java trunk/esigate-core/src/test/java/org/esigate/cookie/DefaultCookieManagerTest.java trunk/esigate-core/src/test/java/org/esigate/esi/ChooseElementTest.java trunk/esigate-core/src/test/java/org/esigate/esi/CommentElementTest.java trunk/esigate-core/src/test/java/org/esigate/esi/CommentTest.java trunk/esigate-core/src/test/java/org/esigate/esi/EsiRendererTest.java trunk/esigate-core/src/test/java/org/esigate/esi/IncludeElementTest.java trunk/esigate-core/src/test/java/org/esigate/esi/InlineElementTest.java trunk/esigate-core/src/test/java/org/esigate/esi/RemoveElementTest.java trunk/esigate-core/src/test/java/org/esigate/esi/ReplaceElementTest.java trunk/esigate-core/src/test/java/org/esigate/esi/TryElementTest.java trunk/esigate-core/src/test/java/org/esigate/esi/VarsElementTest.java trunk/esigate-core/src/test/java/org/esigate/extension/APITest.java trunk/esigate-core/src/test/java/org/esigate/extension/DefaultCharsetTest.java trunk/esigate-core/src/test/java/org/esigate/extension/HtmlEncodingProcessorTest.java trunk/esigate-core/src/test/java/org/esigate/extension/parallelesi/ChooseElementTest.java trunk/esigate-core/src/test/java/org/esigate/extension/parallelesi/CommentElementTest.java trunk/esigate-core/src/test/java/org/esigate/extension/parallelesi/CommentTest.java trunk/esigate-core/src/test/java/org/esigate/extension/parallelesi/EsiRendererTest.java trunk/esigate-core/src/test/java/org/esigate/extension/parallelesi/IncludeElementTest.java trunk/esigate-core/src/test/java/org/esigate/extension/parallelesi/InlineElementTest.java trunk/esigate-core/src/test/java/org/esigate/extension/parallelesi/ParallelEsiTest.java trunk/esigate-core/src/test/java/org/esigate/extension/parallelesi/RemoveElementTest.java trunk/esigate-core/src/test/java/org/esigate/extension/parallelesi/ReplaceElementTest.java trunk/esigate-core/src/test/java/org/esigate/extension/parallelesi/TryElementTest.java trunk/esigate-core/src/test/java/org/esigate/extension/parallelesi/VarsElementTest.java trunk/esigate-core/src/test/java/org/esigate/extension/surrogate/SurrogateTest.java trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java trunk/esigate-core/src/test/java/org/esigate/http/MockHttpServletRequestBuilder.java trunk/esigate-core/src/test/java/org/esigate/http/XForwardedHeadersTest.java trunk/esigate-core/src/test/java/org/esigate/parser/ParserTest.java trunk/esigate-core/src/test/java/org/esigate/parser/future/FutureParserTest.java trunk/esigate-core/src/test/java/org/esigate/resource/ResourceUtilsTest.java trunk/esigate-core/src/test/java/org/esigate/servlet/impl/ResponseCapturingWrapperTest.java trunk/esigate-core/src/test/java/org/esigate/test/conn/SequenceResponseTest.java trunk/esigate-core/src/test/java/org/esigate/test/conn/UriResponseTest.java trunk/esigate-core/src/test/java/org/esigate/url/IpHashBaseUrlRetrieveStrategyTest.java trunk/esigate-core/src/test/java/org/esigate/url/RoundRobinBaseUrlRetrieveStrategyTest.java trunk/esigate-core/src/test/java/org/esigate/url/SingleBaseUrlRetrieveStrategyTest.java trunk/esigate-core/src/test/java/org/esigate/url/StickySessionBaseUrlRetrieveStrategyTest.java trunk/esigate-core/src/test/java/org/esigate/vars/DriverEsiVariablesTest.java trunk/esigate-core/src/test/java/org/esigate/vars/DriverEsiWhenTest.java Added Paths: ----------- trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestContext.java trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletRequestContext.java trunk/esigate-core/src/main/java/org/esigate/servlet/impl/HttpServletSession.java trunk/esigate-core/src/main/java/org/esigate/servlet/impl/RequestFactory.java trunk/esigate-core/src/main/java/org/esigate/servlet/impl/ResponseSender.java trunk/esigate-core/src/test/java/org/esigate/esi/AbstractElementTest.java trunk/esigate-core/src/test/java/org/esigate/extension/parallelesi/AbstractElementTest.java trunk/esigate-core/src/test/java/org/esigate/servlet/impl/HttpServletSessionTest.java trunk/esigate-core/src/test/java/org/esigate/servlet/impl/ResponseSenderTest.java Removed Paths: ------------- trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletSession.java trunk/esigate-core/src/main/java/org/esigate/test/http/HttpRequestBuilder.java trunk/esigate-core/src/test/java/org/esigate/http/DummyHttpClientTest.java trunk/esigate-core/src/test/java/org/esigate/servlet/HttpServletMediatorTest.java Modified: trunk/esigate-app-aggregator/src/test/java/org/esigate/test/cases/Bug101ConnectionReleaseTest.java =================================================================== --- trunk/esigate-app-aggregator/src/test/java/org/esigate/test/cases/Bug101ConnectionReleaseTest.java 2014-01-14 23:04:41 UTC (rev 1533) +++ trunk/esigate-app-aggregator/src/test/java/org/esigate/test/cases/Bug101ConnectionReleaseTest.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -23,7 +23,7 @@ private void render(Driver driver, String page) throws IOException { StringBuilderWriter writer = new StringBuilderWriter(); - IncomingRequest httpRequest = TestUtils.createRequest(); + IncomingRequest httpRequest = TestUtils.createIncomingRequest().build(); try { CloseableHttpResponse response = driver.render("/esigate-app-aggregated1/" + page, httpRequest, new BlockRenderer(null, "/esigate-app-aggregated1/" + page)); Modified: trunk/esigate-app-master/src/main/webapp/user.jsp =================================================================== --- trunk/esigate-app-master/src/main/webapp/user.jsp 2014-01-14 23:04:41 UTC (rev 1533) +++ trunk/esigate-app-master/src/main/webapp/user.jsp 2014-01-15 11:04:24 UTC (rev 1534) @@ -1,13 +1,7 @@ <?xml version="1.0" encoding="ISO-8859-1" ?> -<%@page import="org.esigate.http.IncomingRequest"%> -<%@page import="org.esigate.servlet.HttpServletMediator"%> <%@page language="java" contentType="text/html; charset=ISO-8859-1" - pageEncoding="ISO-8859-1"%> -<%@page import="org.esigate.UserContext"%> -<%@page import="org.esigate.DriverFactory"%> - + pageEncoding="ISO-8859-1" import="org.esigate.UserContext"%> <% - IncomingRequest httpRequest = new HttpServletMediator(request, response, config.getServletContext()).getHttpRequest(); - UserContext context = new UserContext(httpRequest, "default"); - context.setUser("test"); -%><esi:include src="$(PROVIDER{default})user.jsp" /> + session.setAttribute(UserContext.getUserSessionKey("default"), "test"); +%> +<esi:include src="$(PROVIDER{default})user.jsp" /> Modified: trunk/esigate-app-master/src/test/resources/user.jsp =================================================================== --- trunk/esigate-app-master/src/test/resources/user.jsp 2014-01-14 23:04:41 UTC (rev 1533) +++ trunk/esigate-app-master/src/test/resources/user.jsp 2014-01-15 11:04:24 UTC (rev 1534) @@ -1,10 +1,6 @@ <?xml version="1.0" encoding="ISO-8859-1" ?> - - - - <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> Modified: trunk/esigate-core/src/main/java/org/esigate/HttpErrorPage.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/HttpErrorPage.java 2014-01-14 23:04:41 UTC (rev 1533) +++ trunk/esigate-core/src/main/java/org/esigate/HttpErrorPage.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -37,6 +37,8 @@ import org.apache.http.message.BasicStatusLine; import org.apache.http.util.EntityUtils; import org.esigate.http.BasicCloseableHttpResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Exception thrown when an error occurred retrieving a resource. @@ -48,6 +50,7 @@ */ public class HttpErrorPage extends Exception { private static final long serialVersionUID = 1L; + private static final Logger LOG = LoggerFactory.getLogger(HttpErrorPage.class); private final CloseableHttpResponse httpResponse; private static HttpEntity toMemoryEntity(String content) { @@ -154,7 +157,8 @@ } else if (exception instanceof SocketException) { return generateHttpResponse(HttpStatus.SC_BAD_GATEWAY, "Socket Exception"); } else { - return generateHttpResponse(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Error retrieving URL"); + LOG.error("Error retrieving URL", exception); + return generateHttpResponse(HttpStatus.SC_BAD_GATEWAY, "Error retrieving URL"); } } Modified: trunk/esigate-core/src/main/java/org/esigate/UserContext.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/UserContext.java 2014-01-14 23:04:41 UTC (rev 1533) +++ trunk/esigate-core/src/main/java/org/esigate/UserContext.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -71,4 +71,15 @@ StringBuilder result = new StringBuilder(Parameters.SMALL_BUFFER_SIZE).append("User=").append(getUser()); return result.toString(); } + + /** + * Returns the key under which the user name is to be stored in the session for a given provider. + * + * @param providerName + * The name of the provider + * @return The session key + */ + public static String getUserSessionKey(String providerName) { + return UserContext.class.getName() + "#" + providerName + "#" + USER_KEY; + } } Copied: trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestContext.java (from rev 1529, trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java) =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestContext.java (rev 0) +++ trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestContext.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -0,0 +1,26 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.esigate.api; + +/** + * Encapsulates container-specific objects that may be used by container-specific extensions. + * + * @author Francois-Xavier Bonnet + * + */ +public interface ContainerRequestContext { + +} Deleted: trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java 2014-01-14 23:04:41 UTC (rev 1533) +++ trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -1,37 +0,0 @@ -/* - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package org.esigate.api; - -import org.esigate.http.IncomingRequest; - -/** - * Encapsulates all interactions between EsiGate and the server container it is running in. To run EsiGate inside a new - * container type, an implementation of this interface is required. - * - * @author Francois-Xavier Bonnet - * - */ -public interface ContainerRequestMediator { - - /** - * Returns the <code>IncomingRequest</code> representing the request received by the container. Subsequent calls to - * this method should return the same instance. - * - * @return the <code>IncomingRequest</code> - */ - IncomingRequest getHttpRequest(); - -} Modified: trunk/esigate-core/src/main/java/org/esigate/http/IncomingRequest.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/http/IncomingRequest.java 2014-01-14 23:04:41 UTC (rev 1533) +++ trunk/esigate-core/src/main/java/org/esigate/http/IncomingRequest.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -21,10 +21,13 @@ import java.util.List; import java.util.Map; +import org.apache.http.HttpVersion; import org.apache.http.RequestLine; import org.apache.http.cookie.Cookie; +import org.apache.http.entity.InputStreamEntity; import org.apache.http.message.BasicHttpEntityEnclosingRequest; -import org.esigate.api.ContainerRequestMediator; +import org.apache.http.message.BasicRequestLine; +import org.esigate.api.ContainerRequestContext; import org.esigate.api.Session; /** @@ -33,10 +36,10 @@ * @author fxbonnet * */ -public class IncomingRequest extends BasicHttpEntityEnclosingRequest { +public final class IncomingRequest extends BasicHttpEntityEnclosingRequest { private final Map<String, Object> attributes = new HashMap<String, Object>(); - private final ContainerRequestMediator mediator; + private ContainerRequestContext context; private String remoteUser; private String remoteAddr; private String sessionId; @@ -45,9 +48,74 @@ private List<Cookie> newCookies = new ArrayList<Cookie>(); private Session session; - public IncomingRequest(RequestLine requestline, ContainerRequestMediator mediator) { + public static final class Builder { + private final IncomingRequest result; + + private Builder(RequestLine requestline) { + result = new IncomingRequest(requestline); + } + + public IncomingRequest build() { + return result; + } + + public Builder setContext(ContainerRequestContext context) { + result.context = context; + return this; + } + + public Builder setRemoteAddr(String remoteAddr) { + result.remoteAddr = remoteAddr; + return this; + } + + public Builder setRemoteUser(String remoteUser) { + result.remoteUser = remoteUser; + return this; + } + + public Builder setSessionId(String sessionId) { + result.sessionId = sessionId; + return this; + } + + public Builder setUserPrincipal(Principal userPrincipal) { + result.userPrincipal = userPrincipal; + return this; + } + + public Builder addCookie(Cookie cookie) { + result.cookies.add(cookie); + return this; + } + + public Builder setSession(Session session) { + result.session = session; + return this; + } + + public Builder addHeader(String name, String value) { + result.addHeader(name, value); + return this; + } + + public Builder setEntity(InputStreamEntity entity) { + result.setEntity(entity); + return this; + } + + } + + public static Builder builder(RequestLine requestline) { + return new Builder(requestline); + } + + public static Builder builder(String uri) { + return new Builder(new BasicRequestLine("GET", uri, HttpVersion.HTTP_1_1)); + } + + private IncomingRequest(RequestLine requestline) { super(requestline); - this.mediator = mediator; } public <T> T getAttribute(String name) { @@ -58,8 +126,8 @@ attributes.put(name, value); } - public ContainerRequestMediator getMediator() { - return mediator; + public ContainerRequestContext getContext() { + return context; } public String getRemoteUser() { @@ -74,22 +142,6 @@ return sessionId; } - public void setRemoteAddr(String remoteAddr) { - this.remoteAddr = remoteAddr; - } - - public void setRemoteUser(String remoteUser) { - this.remoteUser = remoteUser; - } - - public void setSessionId(String sessionId) { - this.sessionId = sessionId; - } - - public void setUserPrincipal(Principal userPrincipal) { - this.userPrincipal = userPrincipal; - } - public Principal getUserPrincipal() { return userPrincipal; } @@ -102,10 +154,6 @@ return newCookies.toArray(new Cookie[newCookies.size()]); } - public void addCookie(Cookie cookie) { - cookies.add(cookie); - } - public void addNewCookie(Cookie cookie) { newCookies.add(cookie); } @@ -114,8 +162,4 @@ return session; } - public void setSession(Session session) { - this.session = session; - } - } Modified: trunk/esigate-core/src/main/java/org/esigate/http/OutgoingRequest.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/http/OutgoingRequest.java 2014-01-14 23:04:41 UTC (rev 1533) +++ trunk/esigate-core/src/main/java/org/esigate/http/OutgoingRequest.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -24,7 +24,7 @@ import org.apache.http.message.BasicHttpEntityEnclosingRequest; import org.apache.http.message.BasicRequestLine; import org.esigate.UserContext; -import org.esigate.api.ContainerRequestMediator; +import org.esigate.api.ContainerRequestContext; import org.esigate.impl.DriverRequest; /** @@ -81,8 +81,8 @@ return originalRequest.getUserContext(); } - public ContainerRequestMediator getMediator() { - return originalRequest.getMediator(); + public ContainerRequestContext getContainerRequestContext() { + return originalRequest.getContext(); } public URL getBaseUrl() { Modified: trunk/esigate-core/src/main/java/org/esigate/impl/DriverRequest.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/impl/DriverRequest.java 2014-01-14 23:04:41 UTC (rev 1533) +++ trunk/esigate-core/src/main/java/org/esigate/impl/DriverRequest.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -13,7 +13,7 @@ import org.esigate.Driver; import org.esigate.HttpErrorPage; import org.esigate.UserContext; -import org.esigate.api.ContainerRequestMediator; +import org.esigate.api.ContainerRequestContext; import org.esigate.http.IncomingRequest; public class DriverRequest implements HttpEntityEnclosingRequest { @@ -164,8 +164,8 @@ this.characterEncoding = characterEncoding; } - public ContainerRequestMediator getMediator() { - return wrappedRequest.getMediator(); + public ContainerRequestContext getContext() { + return wrappedRequest.getContext(); } public IncomingRequest getOriginalRequest() { Deleted: trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java 2014-01-14 23:04:41 UTC (rev 1533) +++ trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -1,211 +0,0 @@ -/* - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package org.esigate.servlet; - -import java.io.IOException; -import java.util.Enumeration; - -import javax.servlet.FilterChain; -import javax.servlet.ServletContext; -import javax.servlet.ServletInputStream; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import org.apache.http.Header; -import org.apache.http.HttpEntity; -import org.apache.http.HttpHeaders; -import org.apache.http.HttpResponse; -import org.apache.http.ProtocolVersion; -import org.apache.http.cookie.Cookie; -import org.apache.http.entity.InputStreamEntity; -import org.apache.http.impl.cookie.BasicClientCookie; -import org.apache.http.message.BasicLineParser; -import org.apache.http.message.BasicRequestLine; -import org.esigate.api.ContainerRequestMediator; -import org.esigate.http.IncomingRequest; -import org.esigate.util.UriUtils; - -/** - * This mediator converts esigate request/responses to Servlet request/responses. - * <p> - * When converting requests, a mediator instance is attached to the request and can be retrieved any time in esigate - * code, usually to update session and cookies. - * - * @author Francois-Xavier Bonnet - * @author Nicolas Richeton - * - */ -public class HttpServletMediator implements ContainerRequestMediator { - - private final HttpServletRequest request; - private final HttpServletResponse response; - private final ServletContext servletContext; - private final IncomingRequest httpRequest; - private final FilterChain filterChain; - - public HttpServletMediator(HttpServletRequest request, HttpServletResponse response, ServletContext servletContext) - throws IOException { - this(request, response, servletContext, null); - } - - public HttpServletMediator(HttpServletRequest request, HttpServletResponse response, ServletContext servletContext, - FilterChain filterChain) throws IOException { - this.request = request; - this.response = response; - this.servletContext = servletContext; - this.filterChain = filterChain; - // create request line - String uri = UriUtils.createURI(request.getScheme(), request.getServerName(), request.getServerPort(), - request.getRequestURI(), request.getQueryString(), null); - ProtocolVersion protocolVersion = BasicLineParser.parseProtocolVersion(request.getProtocol(), null); - IncomingRequest result = new IncomingRequest(new BasicRequestLine(request.getMethod(), uri, protocolVersion), - this); - // copy headers - @SuppressWarnings("rawtypes") - Enumeration names = request.getHeaderNames(); - while (names.hasMoreElements()) { - String name = (String) names.nextElement(); - @SuppressWarnings("rawtypes") - Enumeration values = request.getHeaders(name); - while (values.hasMoreElements()) { - String value = (String) values.nextElement(); - result.addHeader(name, value); - } - } - // create entity - ServletInputStream inputStream = request.getInputStream(); - if (inputStream != null) { - // Copy entity-related headers - String contentLengthHeader = request.getHeader(HttpHeaders.CONTENT_LENGTH); - long contentLength = (contentLengthHeader != null) ? Long.parseLong(contentLengthHeader) : -1; - InputStreamEntity entity = new InputStreamEntity(inputStream, contentLength); - String contentTypeHeader = request.getContentType(); - if (contentTypeHeader != null) { - entity.setContentType(contentTypeHeader); - } - String contentEncodingHeader = request.getCharacterEncoding(); - if (contentEncodingHeader != null) { - entity.setContentEncoding(contentEncodingHeader); - } - result.setEntity(entity); - } - - result.setRemoteAddr(request.getRemoteAddr()); - result.setRemoteUser(request.getRemoteUser()); - HttpSession session = request.getSession(false); - if (session != null) { - result.setSessionId(session.getId()); - } - result.setUserPrincipal(request.getUserPrincipal()); - // Copy cookies - javax.servlet.http.Cookie[] src = request.getCookies(); - if (src != null) { - for (int i = 0; i < src.length; i++) { - javax.servlet.http.Cookie c = src[i]; - BasicClientCookie dest = new BasicClientCookie(c.getName(), c.getValue()); - dest.setSecure(c.getSecure()); - dest.setDomain(c.getDomain()); - dest.setPath(c.getPath()); - dest.setComment(c.getComment()); - dest.setVersion(c.getVersion()); - result.addCookie(dest); - } - } - result.setSession(new HttpServletSession(request)); - this.httpRequest = result; - } - - static javax.servlet.http.Cookie rewriteCookie(Cookie src) { - javax.servlet.http.Cookie servletCookie = new javax.servlet.http.Cookie(src.getName(), src.getValue()); - - if (src.getDomain() != null) { - servletCookie.setDomain(src.getDomain()); - } - servletCookie.setPath(src.getPath()); - servletCookie.setSecure(src.isSecure()); - servletCookie.setComment(src.getComment()); - servletCookie.setVersion(src.getVersion()); - if (src.getExpiryDate() != null) { - int maxAge = (int) ((src.getExpiryDate().getTime() - System.currentTimeMillis()) / 1000); - // According to Cookie class specification, a negative value - // would be considered as no value. That is not what we want! - if (maxAge < 0) { - maxAge = 0; - } - servletCookie.setMaxAge(maxAge); - } - return servletCookie; - } - - public void sendResponse(HttpResponse httpResponse) throws IOException { - response.setStatus(httpResponse.getStatusLine().getStatusCode()); - for (Header header : httpResponse.getAllHeaders()) { - String name = header.getName(); - String value = header.getValue(); - response.addHeader(name, value); - } - - // Copy new cookies - Cookie[] newCookies = httpRequest.getNewCookies(); - for (int i = 0; i < newCookies.length; i++) { - response.addCookie(rewriteCookie(newCookies[i])); - } - - HttpEntity httpEntity = httpResponse.getEntity(); - if (httpEntity != null) { - long contentLength = httpEntity.getContentLength(); - if (contentLength > -1 && contentLength < Integer.MAX_VALUE) { - response.setContentLength((int) contentLength); - } - Header contentType = httpEntity.getContentType(); - if (contentType != null) { - response.setContentType(contentType.getValue()); - } - Header contentEncoding = httpEntity.getContentEncoding(); - if (contentEncoding != null) { - response.setHeader(contentEncoding.getName(), contentEncoding.getValue()); - } - - httpEntity.writeTo(response.getOutputStream()); - } else { - response.sendError(httpResponse.getStatusLine().getStatusCode(), httpResponse.getStatusLine() - .getReasonPhrase()); - } - } - - @Override - public IncomingRequest getHttpRequest() { - return httpRequest; - } - - HttpServletResponse getResponse() { - return response; - } - - HttpServletRequest getRequest() { - return request; - } - - FilterChain getFilterChain() { - return filterChain; - } - - ServletContext getServletContext() { - return servletContext; - } - -} Copied: trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletRequestContext.java (from rev 1529, trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java) =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletRequestContext.java (rev 0) +++ trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletRequestContext.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -0,0 +1,68 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.esigate.servlet; + +import javax.servlet.FilterChain; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.esigate.api.ContainerRequestContext; + +/** + * Contains the object related to the request. + * + * @author Francois-Xavier Bonnet + * @author Nicolas Richeton + * + */ +public class HttpServletRequestContext implements ContainerRequestContext { + + private final HttpServletRequest request; + private final HttpServletResponse response; + private final ServletContext servletContext; + private final FilterChain filterChain; + + public HttpServletRequestContext(HttpServletRequest request, HttpServletResponse response, + ServletContext servletContext) { + this(request, response, servletContext, null); + } + + public HttpServletRequestContext(HttpServletRequest request, HttpServletResponse response, + ServletContext servletContext, FilterChain filterChain) { + this.request = request; + this.response = response; + this.servletContext = servletContext; + this.filterChain = filterChain; + } + + HttpServletResponse getResponse() { + return response; + } + + HttpServletRequest getRequest() { + return request; + } + + FilterChain getFilterChain() { + return filterChain; + } + + ServletContext getServletContext() { + return servletContext; + } + +} Deleted: trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletSession.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletSession.java 2014-01-14 23:04:41 UTC (rev 1533) +++ trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletSession.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -1,58 +0,0 @@ -/* - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package org.esigate.servlet; - -import java.io.Serializable; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.esigate.api.Session; - -/** - * Encapsulates servlet containes HttpSession mechanism. - * - * @author Francois-Xavier Bonnet - * - */ -public class HttpServletSession implements Session { - - private final HttpServletRequest request; - - public HttpServletSession(HttpServletRequest request) { - this.request = request; - } - - @Override - public void setAttribute(String key, Serializable value) { - HttpSession session = this.request.getSession(); - // Session may be null on some servlet engines if the response has been sent already. This may happen for - // background revalidations. - if (session != null) { - session.setAttribute(key, value); - } - } - - @Override - public Serializable getAttribute(String key) { - HttpSession session = this.request.getSession(false); - if (session == null) { - return null; - } - return (Serializable) session.getAttribute(key); - } - -} Modified: trunk/esigate-core/src/main/java/org/esigate/servlet/ProxyFilter.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/servlet/ProxyFilter.java 2014-01-14 23:04:41 UTC (rev 1533) +++ trunk/esigate-core/src/main/java/org/esigate/servlet/ProxyFilter.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -30,20 +30,24 @@ import org.esigate.Driver; import org.esigate.DriverFactory; import org.esigate.HttpErrorPage; +import org.esigate.http.IncomingRequest; import org.esigate.impl.UriMapping; import org.esigate.servlet.impl.DriverSelector; +import org.esigate.servlet.impl.RequestFactory; import org.esigate.servlet.impl.RequestUrl; +import org.esigate.servlet.impl.ResponseSender; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ProxyFilter implements Filter { private static final Logger LOG = LoggerFactory.getLogger(ProxyFilter.class); - private FilterConfig config; + private RequestFactory requestFactory; private final DriverSelector driverSelector = new DriverSelector(); + private final ResponseSender responseSender = new ResponseSender(); @Override public void init(FilterConfig filterConfig) { - this.config = filterConfig; + requestFactory = new RequestFactory(filterConfig.getServletContext()); // Force esigate configuration parsing to trigger errors right away (if // any) and prevent delay on first call. DriverFactory.ensureConfigured(); @@ -53,18 +57,17 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException { HttpServletRequest httpServletRequest = (HttpServletRequest) request; HttpServletResponse httpServletResponse = (HttpServletResponse) response; - HttpServletMediator mediator = new HttpServletMediator(httpServletRequest, httpServletResponse, - config.getServletContext(), chain); + IncomingRequest incomingRequest = requestFactory.create(httpServletRequest, httpServletResponse, chain); Pair<Driver, UriMapping> dm = null; try { dm = driverSelector.selectProvider(httpServletRequest, false); String relUrl = RequestUrl.getRelativeUrl(httpServletRequest, dm.getRight(), false); LOG.debug("Proxying {}", relUrl); - CloseableHttpResponse driverResponse = dm.getLeft().proxy(relUrl, mediator.getHttpRequest()); - mediator.sendResponse(driverResponse); + CloseableHttpResponse driverResponse = dm.getLeft().proxy(relUrl, incomingRequest); + responseSender.sendResponse(driverResponse, incomingRequest, httpServletResponse); } catch (HttpErrorPage e) { if (!httpServletResponse.isCommitted()) { - mediator.sendResponse(e.getHttpResponse()); + responseSender.sendResponse(e.getHttpResponse(), incomingRequest, httpServletResponse); } } } Modified: trunk/esigate-core/src/main/java/org/esigate/servlet/ServletExtension.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/servlet/ServletExtension.java 2014-01-14 23:04:41 UTC (rev 1533) +++ trunk/esigate-core/src/main/java/org/esigate/servlet/ServletExtension.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -26,7 +26,7 @@ import org.esigate.Driver; import org.esigate.HttpErrorPage; import org.esigate.Parameters; -import org.esigate.api.ContainerRequestMediator; +import org.esigate.api.ContainerRequestContext; import org.esigate.events.Event; import org.esigate.events.EventDefinition; import org.esigate.events.EventManager; @@ -71,52 +71,52 @@ if (!relUrl.startsWith("/")) { relUrl = "/" + relUrl; } - ContainerRequestMediator mediator = outgoingRequest.getMediator(); + ContainerRequestContext requestContext = outgoingRequest.getContainerRequestContext(); CloseableHttpResponse result; - if (!(mediator instanceof HttpServletMediator)) { + if (!(requestContext instanceof HttpServletRequestContext)) { String message = ServletExtension.class.getName() + " can be used only inside a java servlet engine"; result = HttpErrorPage.generateHttpResponse(HttpStatus.SC_BAD_GATEWAY, message); } else { - HttpServletMediator httpServletMediator = (HttpServletMediator) mediator; + HttpServletRequestContext httpServletRequestContext = (HttpServletRequestContext) requestContext; try { if (fetchEvent.getHttpContext().isProxy()) { ResponseCapturingWrapper wrappedResponse = new ResponseCapturingWrapper( - httpServletMediator.getResponse(), driver.getContentTypeHelper(), true, + httpServletRequestContext.getResponse(), driver.getContentTypeHelper(), true, maxObjectSize); if (context == null) { - httpServletMediator.getFilterChain().doFilter(httpServletMediator.getRequest(), - wrappedResponse); + httpServletRequestContext.getFilterChain().doFilter( + httpServletRequestContext.getRequest(), wrappedResponse); result = wrappedResponse.getResponse(); } else { - ServletContext crossContext = httpServletMediator.getServletContext().getContext( + ServletContext crossContext = httpServletRequestContext.getServletContext().getContext( context); if (crossContext == null) { String message = "Context " + context + " does not exist or cross context disabled"; result = HttpErrorPage.generateHttpResponse(HttpStatus.SC_BAD_GATEWAY, message); } else { - crossContext.getRequestDispatcher(relUrl).forward(httpServletMediator.getRequest(), - wrappedResponse); + crossContext.getRequestDispatcher(relUrl).forward( + httpServletRequestContext.getRequest(), wrappedResponse); result = wrappedResponse.getResponse(); } } } else { ResponseCapturingWrapper wrappedResponse = new ResponseCapturingWrapper( - httpServletMediator.getResponse(), driver.getContentTypeHelper(), false, + httpServletRequestContext.getResponse(), driver.getContentTypeHelper(), false, maxObjectSize); if (context == null) { - httpServletMediator.getRequest().getRequestDispatcher(relUrl) - .forward(httpServletMediator.getRequest(), wrappedResponse); + httpServletRequestContext.getRequest().getRequestDispatcher(relUrl) + .forward(httpServletRequestContext.getRequest(), wrappedResponse); result = wrappedResponse.getResponse(); } else { - ServletContext crossContext = httpServletMediator.getServletContext().getContext( + ServletContext crossContext = httpServletRequestContext.getServletContext().getContext( context); if (crossContext == null) { String message = "Context " + context + " does not exist or cross context disabled"; result = HttpErrorPage.generateHttpResponse(HttpStatus.SC_BAD_GATEWAY, message); } else { - crossContext.getRequestDispatcher(relUrl).include(httpServletMediator.getRequest(), - wrappedResponse); + crossContext.getRequestDispatcher(relUrl).include( + httpServletRequestContext.getRequest(), wrappedResponse); result = wrappedResponse.getResponse(); } } Copied: trunk/esigate-core/src/main/java/org/esigate/servlet/impl/HttpServletSession.java (from rev 1529, trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletSession.java) =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/servlet/impl/HttpServletSession.java (rev 0) +++ trunk/esigate-core/src/main/java/org/esigate/servlet/impl/HttpServletSession.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -0,0 +1,58 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.esigate.servlet.impl; + +import java.io.Serializable; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.esigate.api.Session; + +/** + * Encapsulates servlet containes HttpSession mechanism. + * + * @author Francois-Xavier Bonnet + * + */ +public class HttpServletSession implements Session { + + private final HttpServletRequest request; + + public HttpServletSession(HttpServletRequest request) { + this.request = request; + } + + @Override + public void setAttribute(String key, Serializable value) { + HttpSession session = this.request.getSession(); + // Session may be null on some servlet engines if the response has been sent already. This may happen for + // background revalidations. + if (session != null) { + session.setAttribute(key, value); + } + } + + @Override + public Serializable getAttribute(String key) { + HttpSession session = this.request.getSession(false); + if (session == null) { + return null; + } + return (Serializable) session.getAttribute(key); + } + +} Added: trunk/esigate-core/src/main/java/org/esigate/servlet/impl/RequestFactory.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/servlet/impl/RequestFactory.java (rev 0) +++ trunk/esigate-core/src/main/java/org/esigate/servlet/impl/RequestFactory.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -0,0 +1,116 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.esigate.servlet.impl; + +import java.io.IOException; +import java.util.Enumeration; + +import javax.servlet.FilterChain; +import javax.servlet.ServletContext; +import javax.servlet.ServletInputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.apache.http.HttpHeaders; +import org.apache.http.ProtocolVersion; +import org.apache.http.entity.InputStreamEntity; +import org.apache.http.impl.cookie.BasicClientCookie; +import org.apache.http.message.BasicLineParser; +import org.apache.http.message.BasicRequestLine; +import org.esigate.http.IncomingRequest; +import org.esigate.servlet.HttpServletRequestContext; +import org.esigate.util.UriUtils; + +/** + * Converts the {@link HttpServletRequest} to an {@link IncomingRequest}. + * + * @author Francois-Xavier Bonnet + * + */ +public class RequestFactory { + private final ServletContext servletContext; + + public RequestFactory(ServletContext servletContext) { + this.servletContext = servletContext; + } + + public IncomingRequest create(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) + throws IOException { + HttpServletRequestContext context = new HttpServletRequestContext(request, response, servletContext, + filterChain); + // create request line + String uri = UriUtils.createURI(request.getScheme(), request.getServerName(), request.getServerPort(), + request.getRequestURI(), request.getQueryString(), null); + ProtocolVersion protocolVersion = BasicLineParser.parseProtocolVersion(request.getProtocol(), null); + IncomingRequest.Builder builder = IncomingRequest.builder(new BasicRequestLine(request.getMethod(), uri, + protocolVersion)); + builder.setContext(context); + // copy headers + @SuppressWarnings("rawtypes") + Enumeration names = request.getHeaderNames(); + while (names.hasMoreElements()) { + String name = (String) names.nextElement(); + @SuppressWarnings("rawtypes") + Enumeration values = request.getHeaders(name); + while (values.hasMoreElements()) { + String value = (String) values.nextElement(); + builder.addHeader(name, value); + } + } + // create entity + ServletInputStream inputStream = request.getInputStream(); + if (inputStream != null) { + // Copy entity-related headers + String contentLengthHeader = request.getHeader(HttpHeaders.CONTENT_LENGTH); + long contentLength = (contentLengthHeader != null) ? Long.parseLong(contentLengthHeader) : -1; + InputStreamEntity entity = new InputStreamEntity(inputStream, contentLength); + String contentTypeHeader = request.getContentType(); + if (contentTypeHeader != null) { + entity.setContentType(contentTypeHeader); + } + String contentEncodingHeader = request.getCharacterEncoding(); + if (contentEncodingHeader != null) { + entity.setContentEncoding(contentEncodingHeader); + } + builder.setEntity(entity); + } + + builder.setRemoteAddr(request.getRemoteAddr()); + builder.setRemoteUser(request.getRemoteUser()); + HttpSession session = request.getSession(false); + if (session != null) { + builder.setSessionId(session.getId()); + } + builder.setUserPrincipal(request.getUserPrincipal()); + // Copy cookies + javax.servlet.http.Cookie[] src = request.getCookies(); + if (src != null) { + for (int i = 0; i < src.length; i++) { + javax.servlet.http.Cookie c = src[i]; + BasicClientCookie dest = new BasicClientCookie(c.getName(), c.getValue()); + dest.setSecure(c.getSecure()); + dest.setDomain(c.getDomain()); + dest.setPath(c.getPath()); + dest.setComment(c.getComment()); + dest.setVersion(c.getVersion()); + builder.addCookie(dest); + } + } + builder.setSession(new HttpServletSession(request)); + return builder.build(); + } +} Modified: trunk/esigate-core/src/main/java/org/esigate/servlet/impl/ResponseCapturingWrapper.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/servlet/impl/ResponseCapturingWrapper.java 2014-01-14 23:04:41 UTC (rev 1533) +++ trunk/esigate-core/src/main/java/org/esigate/servlet/impl/ResponseCapturingWrapper.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -28,7 +28,6 @@ import org.apache.commons.io.output.StringBuilderWriter; import org.apache.http.Header; import org.apache.http.HttpHeaders; -import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.HttpVersion; import org.apache.http.client.methods.CloseableHttpResponse; @@ -46,13 +45,14 @@ import org.slf4j.LoggerFactory; /** - * Wrapper to the HttpServletResponse that intercepts the content written in order to build an {@link HttpResponse}. + * Wrapper to the HttpServletResponse that intercepts the content written in order to build an + * {@link org.apache.http.HttpResponse}. * <ul> * <li>If the content of the response is required for transformation (parseable content-type or proxy=false) or smaller - * than the buffer size the {@link HttpResponse} will contain the entire response</li> - * <li>If the content of the response is not required for transformation, the {@link HttpResponse} will contain only an - * abstract of the response truncated to the bufer size. The complete response will have already been written to the - * original {@link HttpServletResponse}</li> + * than the buffer size the {@link org.apache.http.HttpResponse} will contain the entire response</li> + * <li>If the content of the response is not required for transformation, the {@link org.apache.http.HttpResponse} will + * contain only an abstract of the response truncated to the bufer size. The complete response will have already been + * written to the original {@link HttpServletResponse}</li> * </ul> * * @author Francois-Xavier Bonnet Added: trunk/esigate-core/src/main/java/org/esigate/servlet/impl/ResponseSender.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/servlet/impl/ResponseSender.java (rev 0) +++ trunk/esigate-core/src/main/java/org/esigate/servlet/impl/ResponseSender.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -0,0 +1,95 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.esigate.servlet.impl; + +import java.io.IOException; + +import javax.servlet.http.HttpServletResponse; + +import org.apache.http.Header; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.cookie.Cookie; +import org.esigate.http.IncomingRequest; + +/** + * Renders a response to the HttpSerlvetResponse. + * + * @author Francois-Xavier Bonnet + * + */ +public class ResponseSender { + + public javax.servlet.http.Cookie rewriteCookie(Cookie src) { + javax.servlet.http.Cookie servletCookie = new javax.servlet.http.Cookie(src.getName(), src.getValue()); + + if (src.getDomain() != null) { + servletCookie.setDomain(src.getDomain()); + } + servletCookie.setPath(src.getPath()); + servletCookie.setSecure(src.isSecure()); + servletCookie.setComment(src.getComment()); + servletCookie.setVersion(src.getVersion()); + if (src.getExpiryDate() != null) { + int maxAge = (int) ((src.getExpiryDate().getTime() - System.currentTimeMillis()) / 1000); + // According to Cookie class specification, a negative value + // would be considered as no value. That is not what we want! + if (maxAge < 0) { + maxAge = 0; + } + servletCookie.setMaxAge(maxAge); + } + return servletCookie; + } + + public void sendResponse(HttpResponse httpResponse, IncomingRequest httpRequest, HttpServletResponse response) + throws IOException { + response.setStatus(httpResponse.getStatusLine().getStatusCode()); + for (Header header : httpResponse.getAllHeaders()) { + String name = header.getName(); + String value = header.getValue(); + response.addHeader(name, value); + } + + // Copy new cookies + Cookie[] newCookies = httpRequest.getNewCookies(); + for (int i = 0; i < newCookies.length; i++) { + response.addCookie(rewriteCookie(newCookies[i])); + } + + HttpEntity httpEntity = httpResponse.getEntity(); + if (httpEntity != null) { + long contentLength = httpEntity.getContentLength(); + if (contentLength > -1 && contentLength < Integer.MAX_VALUE) { + response.setContentLength((int) contentLength); + } + Header contentType = httpEntity.getContentType(); + if (contentType != null) { + response.setContentType(contentType.getValue()); + } + Header contentEncoding = httpEntity.getContentEncoding(); + if (contentEncoding != null) { + response.setHeader(contentEncoding.getName(), contentEncoding.getValue()); + } + + httpEntity.writeTo(response.getOutputStream()); + } else { + response.sendError(httpResponse.getStatusLine().getStatusCode(), httpResponse.getStatusLine() + .getReasonPhrase()); + } + } + +} Modified: trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java 2014-01-14 23:04:41 UTC (rev 1533) +++ trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java 2014-01-15 11:04:24 UTC (rev 1534) @@ -15,11 +15,16 @@ package org.esigate.test; -import org.apache.http.cookie.Cookie; +import org.apache.http.HttpHost; +import org.apache.http.HttpVersion; +import org.apache.http.RequestLine; +import org.apache.http.message.BasicRequestLine; import org.esigate.Driver; import org.esigate.HttpErrorPage; +import org.esigate.api.ContainerRequestContext; import org.esigate.http.IncomingRequest; import org.esigate.impl.DriverRequest; +import org.esigate.util.UriUtils; /** * @author Francois-Xavier Bonnet @@ -31,33 +36,37 @@ } - public static IncomingRequest createRequest() { - return new MockMediator().getHttpRequest(); + public static IncomingRequest.Builder createIncomingRequest(String uri) { + HttpHost httpHost = UriUtils.extractHost(uri); + String scheme = httpHost.getSchemeName(); + String host = httpHost.getHostName(); + int port = httpHost.getPort(); + RequestLine requestLine = new BasicRequestLine("GET", uri, HttpVersion.HTTP_1_1); + IncomingRequest.Builder builder = IncomingRequest.builder(requestLine); + builder.setContext(new ContainerRequestContext() { + }); + // Remove default ports + if (port == -1 || (port == 80 && "http".equals(scheme)) || (port == 443 && "https".equals(scheme))) { + builder.addHeader("Host", host); + } else { + builder.addHeader("Host", host + ":" + port); + } + builder.setSession(new MockSession()); + return builder; } - public static DriverRequest createRequest(Driver driver) throws HttpErrorPage { - IncomingRequest request = new MockMediator().getHttpRequest(); - return new DriverRequest(request, driver, false); + public static IncomingRequest.Builder createIncomingRequest() { + return createIncomingRequest("http://localhost:8080"); } - public static IncomingRequest createRequest(String uri) { - return new MockMediator(uri).getHttpRequest(); + public static DriverRequest createDriverRequest(String uri, Driver driver) throws HttpErrorPage { + IncomingRequest request = createIncomingRequest(uri).build(); + return new DriverRequest(request, driver, false); } - public static DriverRequest createRequest(String uri, Driver driver) throws HttpErrorPage { - IncomingRequest request = new MockMediator(uri).getHttpRequest(); + public static DriverRequest createDriverRequest(Driver driver) throws HttpErrorPage { + IncomingRequest request = createIncomingRequest().build(); return new DriverRequest(request, driver, false); } - public static void addCookie(Cookie cook... [truncated message content] |
From: <nri...@us...> - 2014-01-14 23:04:44
|
Revision: 1533 http://sourceforge.net/p/webassembletool/code/1533 Author: nricheton Date: 2014-01-14 23:04:41 +0000 (Tue, 14 Jan 2014) Log Message: ----------- [maven-release-plugin] prepare for next development iteration Modified Paths: -------------- branches/esigate-4.x/esigate-app-aggregated1/pom.xml branches/esigate-4.x/esigate-app-aggregated2/pom.xml branches/esigate-4.x/esigate-app-aggregator/pom.xml branches/esigate-4.x/esigate-app-cas/pom.xml branches/esigate-4.x/esigate-app-casified-aggregated1/pom.xml branches/esigate-4.x/esigate-app-casified-aggregated2/pom.xml branches/esigate-4.x/esigate-app-casified-aggregator/pom.xml branches/esigate-4.x/esigate-app-facelet/pom.xml branches/esigate-4.x/esigate-app-master/pom.xml branches/esigate-4.x/esigate-app-provider/pom.xml branches/esigate-4.x/esigate-cas/pom.xml branches/esigate-4.x/esigate-core/pom.xml branches/esigate-4.x/esigate-distribution/pom.xml branches/esigate-4.x/esigate-jsf/pom.xml branches/esigate-4.x/esigate-server/pom.xml branches/esigate-4.x/esigate-taglib/pom.xml branches/esigate-4.x/esigate-taglib-helper/pom.xml branches/esigate-4.x/esigate-war/pom.xml branches/esigate-4.x/esigate-wicket/pom.xml branches/esigate-4.x/pom.xml Modified: branches/esigate-4.x/esigate-app-aggregated1/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-aggregated1/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-app-aggregated1/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <build> <finalName>esigate-app-aggregated1</finalName> Modified: branches/esigate-4.x/esigate-app-aggregated2/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-aggregated2/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-app-aggregated2/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <build> <finalName>esigate-app-aggregated2</finalName> Modified: branches/esigate-4.x/esigate-app-aggregator/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-aggregator/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-app-aggregator/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-app-cas/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-cas/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-app-cas/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <build> <finalName>esigate-app-cas</finalName> Modified: branches/esigate-4.x/esigate-app-casified-aggregated1/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-casified-aggregated1/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-app-casified-aggregated1/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <build> <finalName>esigate-app-casified-aggregated1</finalName> Modified: branches/esigate-4.x/esigate-app-casified-aggregated2/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-casified-aggregated2/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-app-casified-aggregated2/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <build> <finalName>esigate-app-casified-aggregated2</finalName> Modified: branches/esigate-4.x/esigate-app-casified-aggregator/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-casified-aggregator/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-app-casified-aggregator/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-app-facelet/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-facelet/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-app-facelet/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-app-master/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-master/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-app-master/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-app-provider/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-provider/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-app-provider/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <build> <finalName>esigate-app-provider</finalName> Modified: branches/esigate-4.x/esigate-cas/pom.xml =================================================================== --- branches/esigate-4.x/esigate-cas/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-cas/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -5,7 +5,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-core/pom.xml =================================================================== --- branches/esigate-4.x/esigate-core/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-core/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -5,7 +5,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <repositories> <repository> Modified: branches/esigate-4.x/esigate-distribution/pom.xml =================================================================== --- branches/esigate-4.x/esigate-distribution/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-distribution/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-jsf/pom.xml =================================================================== --- branches/esigate-4.x/esigate-jsf/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-jsf/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -5,7 +5,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-server/pom.xml =================================================================== --- branches/esigate-4.x/esigate-server/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-server/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -4,7 +4,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <name>ESIGate server</name> <description>Standalone server for development. Can be run using java -jar esigate-server-<version>.jar -Desigate.config=<config file></description> Modified: branches/esigate-4.x/esigate-taglib/pom.xml =================================================================== --- branches/esigate-4.x/esigate-taglib/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-taglib/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -5,7 +5,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-taglib-helper/pom.xml =================================================================== --- branches/esigate-4.x/esigate-taglib-helper/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-taglib-helper/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -5,7 +5,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-war/pom.xml =================================================================== --- branches/esigate-4.x/esigate-war/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-war/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -5,7 +5,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <name>ESIGate web application</name> <description>ESIGate war application which can be deployed "as-is" or customized for your needs.</description> Modified: branches/esigate-4.x/esigate-wicket/pom.xml =================================================================== --- branches/esigate-4.x/esigate-wicket/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/esigate-wicket/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -5,7 +5,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> </parent> <description>ESIGate components for Apache Wicket.</description> <inceptionYear>2009</inceptionYear> Modified: branches/esigate-4.x/pom.xml =================================================================== --- branches/esigate-4.x/pom.xml 2014-01-14 23:04:28 UTC (rev 1532) +++ branches/esigate-4.x/pom.xml 2014-01-14 23:04:41 UTC (rev 1533) @@ -12,7 +12,7 @@ <artifactId>esigate</artifactId> <packaging>pom</packaging> <name>esigate</name> - <version>4.3</version> + <version>4.4-SNAPSHOT</version> <inceptionYear>2008</inceptionYear> <mailingLists> <mailingList> @@ -97,9 +97,9 @@ </developer> </developers> <scm> - <connection>scm:svn:https://svn.code.sf.net/p/webassembletool/code/tags/esigate-4.3</connection> - <developerConnection>scm:svn:https://svn.code.sf.net/p/webassembletool/code/tags/esigate-4.3</developerConnection> - <url>https://svn.code.sf.net/p/webassembletool/code/tags/esigate-4.3</url> + <connection>scm:svn:https://svn.code.sf.net/p/webassembletool/code/branches/esigate-4.x</connection> + <developerConnection>scm:svn:https://svn.code.sf.net/p/webassembletool/code/branches/esigate-4.x</developerConnection> + <url>https://svn.code.sf.net/p/webassembletool/code/branches/esigate-4.x</url> </scm> <build> <pluginManagement> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nri...@us...> - 2014-01-14 23:04:30
|
Revision: 1532 http://sourceforge.net/p/webassembletool/code/1532 Author: nricheton Date: 2014-01-14 23:04:28 +0000 (Tue, 14 Jan 2014) Log Message: ----------- [maven-release-plugin] copy for tag esigate-4.3 Added Paths: ----------- tags/esigate-4.3/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nri...@us...> - 2014-01-14 23:04:21
|
Revision: 1531 http://sourceforge.net/p/webassembletool/code/1531 Author: nricheton Date: 2014-01-14 23:04:17 +0000 (Tue, 14 Jan 2014) Log Message: ----------- [maven-release-plugin] prepare release esigate-4.3 Modified Paths: -------------- branches/esigate-4.x/esigate-app-aggregated1/pom.xml branches/esigate-4.x/esigate-app-aggregated2/pom.xml branches/esigate-4.x/esigate-app-aggregator/pom.xml branches/esigate-4.x/esigate-app-cas/pom.xml branches/esigate-4.x/esigate-app-casified-aggregated1/pom.xml branches/esigate-4.x/esigate-app-casified-aggregated2/pom.xml branches/esigate-4.x/esigate-app-casified-aggregator/pom.xml branches/esigate-4.x/esigate-app-facelet/pom.xml branches/esigate-4.x/esigate-app-master/pom.xml branches/esigate-4.x/esigate-app-provider/pom.xml branches/esigate-4.x/esigate-cas/pom.xml branches/esigate-4.x/esigate-core/pom.xml branches/esigate-4.x/esigate-distribution/pom.xml branches/esigate-4.x/esigate-jsf/pom.xml branches/esigate-4.x/esigate-server/pom.xml branches/esigate-4.x/esigate-taglib/pom.xml branches/esigate-4.x/esigate-taglib-helper/pom.xml branches/esigate-4.x/esigate-war/pom.xml branches/esigate-4.x/esigate-wicket/pom.xml branches/esigate-4.x/pom.xml Modified: branches/esigate-4.x/esigate-app-aggregated1/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-aggregated1/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-app-aggregated1/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <build> <finalName>esigate-app-aggregated1</finalName> Modified: branches/esigate-4.x/esigate-app-aggregated2/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-aggregated2/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-app-aggregated2/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <build> <finalName>esigate-app-aggregated2</finalName> Modified: branches/esigate-4.x/esigate-app-aggregator/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-aggregator/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-app-aggregator/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-app-cas/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-cas/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-app-cas/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <build> <finalName>esigate-app-cas</finalName> Modified: branches/esigate-4.x/esigate-app-casified-aggregated1/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-casified-aggregated1/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-app-casified-aggregated1/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <build> <finalName>esigate-app-casified-aggregated1</finalName> Modified: branches/esigate-4.x/esigate-app-casified-aggregated2/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-casified-aggregated2/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-app-casified-aggregated2/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <build> <finalName>esigate-app-casified-aggregated2</finalName> Modified: branches/esigate-4.x/esigate-app-casified-aggregator/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-casified-aggregator/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-app-casified-aggregator/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-app-facelet/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-facelet/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-app-facelet/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-app-master/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-master/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-app-master/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-app-provider/pom.xml =================================================================== --- branches/esigate-4.x/esigate-app-provider/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-app-provider/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <build> <finalName>esigate-app-provider</finalName> Modified: branches/esigate-4.x/esigate-cas/pom.xml =================================================================== --- branches/esigate-4.x/esigate-cas/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-cas/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -5,7 +5,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-core/pom.xml =================================================================== --- branches/esigate-4.x/esigate-core/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-core/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -5,7 +5,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <repositories> <repository> Modified: branches/esigate-4.x/esigate-distribution/pom.xml =================================================================== --- branches/esigate-4.x/esigate-distribution/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-distribution/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -6,7 +6,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-jsf/pom.xml =================================================================== --- branches/esigate-4.x/esigate-jsf/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-jsf/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -5,7 +5,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-server/pom.xml =================================================================== --- branches/esigate-4.x/esigate-server/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-server/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -4,7 +4,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <name>ESIGate server</name> <description>Standalone server for development. Can be run using java -jar esigate-server-<version>.jar -Desigate.config=<config file></description> Modified: branches/esigate-4.x/esigate-taglib/pom.xml =================================================================== --- branches/esigate-4.x/esigate-taglib/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-taglib/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -5,7 +5,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-taglib-helper/pom.xml =================================================================== --- branches/esigate-4.x/esigate-taglib-helper/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-taglib-helper/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -5,7 +5,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <dependencies> <dependency> Modified: branches/esigate-4.x/esigate-war/pom.xml =================================================================== --- branches/esigate-4.x/esigate-war/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-war/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -5,7 +5,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <name>ESIGate web application</name> <description>ESIGate war application which can be deployed "as-is" or customized for your needs.</description> Modified: branches/esigate-4.x/esigate-wicket/pom.xml =================================================================== --- branches/esigate-4.x/esigate-wicket/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/esigate-wicket/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -5,7 +5,7 @@ <parent> <artifactId>esigate</artifactId> <groupId>org.esigate</groupId> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> </parent> <description>ESIGate components for Apache Wicket.</description> <inceptionYear>2009</inceptionYear> Modified: branches/esigate-4.x/pom.xml =================================================================== --- branches/esigate-4.x/pom.xml 2014-01-13 16:58:17 UTC (rev 1530) +++ branches/esigate-4.x/pom.xml 2014-01-14 23:04:17 UTC (rev 1531) @@ -12,7 +12,7 @@ <artifactId>esigate</artifactId> <packaging>pom</packaging> <name>esigate</name> - <version>4.3-SNAPSHOT</version> + <version>4.3</version> <inceptionYear>2008</inceptionYear> <mailingLists> <mailingList> @@ -97,9 +97,9 @@ </developer> </developers> <scm> - <connection>scm:svn:https://svn.code.sf.net/p/webassembletool/code/branches/esigate-4.x</connection> - <developerConnection>scm:svn:https://svn.code.sf.net/p/webassembletool/code/branches/esigate-4.x</developerConnection> - <url>https://svn.code.sf.net/p/webassembletool/code/branches/esigate-4.x</url> + <connection>scm:svn:https://svn.code.sf.net/p/webassembletool/code/tags/esigate-4.3</connection> + <developerConnection>scm:svn:https://svn.code.sf.net/p/webassembletool/code/tags/esigate-4.3</developerConnection> + <url>https://svn.code.sf.net/p/webassembletool/code/tags/esigate-4.3</url> </scm> <build> <pluginManagement> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nri...@us...> - 2014-01-13 16:58:22
|
Revision: 1530 http://sourceforge.net/p/webassembletool/code/1530 Author: nricheton Date: 2014-01-13 16:58:17 +0000 (Mon, 13 Jan 2014) Log Message: ----------- Version upgrade in website Modified Paths: -------------- branches/esigate-4.x/src/site/resources/index.html branches/esigate-4.x/src/site/resources/index_es.html branches/esigate-4.x/src/site/resources/index_fr.html Modified: branches/esigate-4.x/src/site/resources/index.html =================================================================== --- branches/esigate-4.x/src/site/resources/index.html 2014-01-13 12:30:40 UTC (rev 1529) +++ branches/esigate-4.x/src/site/resources/index.html 2014-01-13 16:58:17 UTC (rev 1530) @@ -88,7 +88,7 @@ <h1><a href="http://www.esigate.org"><img src="website/img/logo.png" alt="esigate logo" title="esigate"/></a></h1> </div> <div class="span9"> - <div class="pull-right"><p>Version 4.2.1</p> + <div class="pull-right"><p>Version 4.3</p> <!-- <p><a href="https://twitter.com/share" class="twitter-share-button" --> <!-- data-url="http://www.esigate.org" data-lang="en">Tweet</a> --> <!-- <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> --> Modified: branches/esigate-4.x/src/site/resources/index_es.html =================================================================== --- branches/esigate-4.x/src/site/resources/index_es.html 2014-01-13 12:30:40 UTC (rev 1529) +++ branches/esigate-4.x/src/site/resources/index_es.html 2014-01-13 16:58:17 UTC (rev 1530) @@ -113,7 +113,7 @@ <div class="span9"> <div class="pull-right"><p> Versión - 4.2.1</p> + 4.3</p> <!-- <p><a href="https://twitter.com/share" class="twitter-share-button" --> <!-- data-url="http://www.esigate.org" data-lang="en">Tweet</a> --> <!-- <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> --> Modified: branches/esigate-4.x/src/site/resources/index_fr.html =================================================================== --- branches/esigate-4.x/src/site/resources/index_fr.html 2014-01-13 12:30:40 UTC (rev 1529) +++ branches/esigate-4.x/src/site/resources/index_fr.html 2014-01-13 16:58:17 UTC (rev 1530) @@ -108,7 +108,7 @@ <h1><a href="http://www.esigate.org"><img src="website/img/logo.png" alt="esigate logo" title="esigate"/></a></h1> </div> <div class="span9"> - <div class="pull-right"><p>Version 4.2.1</p> + <div class="pull-right"><p>Version 4.3</p> <!-- <p><a href="https://twitter.com/share" class="twitter-share-button" --> <!-- data-url="http://www.esigate.org" data-lang="en">Tweet</a> --> <!-- <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-13 12:30:46
|
Revision: 1529 http://sourceforge.net/p/webassembletool/code/1529 Author: fxbonnet Date: 2014-01-13 12:30:40 +0000 (Mon, 13 Jan 2014) Log Message: ----------- 0000218: Move Mediator usage out of Driver#proxy and sub methods https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=218 Session Modified Paths: -------------- trunk/esigate-core/src/main/java/org/esigate/UserContext.java trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java trunk/esigate-core/src/main/java/org/esigate/authentication/RequestAuthenticationHandler.java trunk/esigate-core/src/main/java/org/esigate/http/IncomingRequest.java trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java trunk/esigate-core/src/test/java/org/esigate/servlet/HttpServletMediatorTest.java Added Paths: ----------- trunk/esigate-core/src/main/java/org/esigate/api/Session.java trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletSession.java trunk/esigate-core/src/main/java/org/esigate/test/MockSession.java Modified: trunk/esigate-core/src/main/java/org/esigate/UserContext.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/UserContext.java 2014-01-13 10:59:46 UTC (rev 1528) +++ trunk/esigate-core/src/main/java/org/esigate/UserContext.java 2014-01-13 12:30:40 UTC (rev 1529) @@ -17,6 +17,7 @@ import java.io.Serializable; +import org.esigate.api.Session; import org.esigate.http.IncomingRequest; /** @@ -43,11 +44,15 @@ } public Object getAttribute(String name) { - return httpRequest.getMediator().getSessionAttribute(prefixAttributeName(name)); + Session session = httpRequest.getSession(); + if (session == null) { + return null; + } + return session.getAttribute(prefixAttributeName(name)); } public void setAttribute(String name, Serializable value) { - httpRequest.getMediator().setSessionAttribute(prefixAttributeName(name), value); + httpRequest.getSession().setAttribute(prefixAttributeName(name), value); } public String getUser() { Modified: trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java 2014-01-13 10:59:46 UTC (rev 1528) +++ trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java 2014-01-13 12:30:40 UTC (rev 1529) @@ -15,8 +15,6 @@ package org.esigate.api; -import java.io.Serializable; - import org.esigate.http.IncomingRequest; /** @@ -29,25 +27,6 @@ public interface ContainerRequestMediator { /** - * Stores an object that can be reused across successive http requests from the same user. Implementations can - * decide to store the objects serialized in a cookie on the client side or server side with some session tracking - * mechanism. - * - * @param key - * @param value - */ - void setSessionAttribute(String key, Serializable value); - - /** - * Retrieves an Object previously stored with method @see #setSessionAttribute(String, Serializable) or - * <code>null</code>. - * - * @param key - * @return the previously stored object or <code>null</code> - */ - Serializable getSessionAttribute(String key); - - /** * Returns the <code>IncomingRequest</code> representing the request received by the container. Subsequent calls to * this method should return the same instance. * Added: trunk/esigate-core/src/main/java/org/esigate/api/Session.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/api/Session.java (rev 0) +++ trunk/esigate-core/src/main/java/org/esigate/api/Session.java 2014-01-13 12:30:40 UTC (rev 1529) @@ -0,0 +1,47 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.esigate.api; + +import java.io.Serializable; + +/** + * The session can be used to store objects available successibe several http interactions. + * + * @author Francois-Xavier Bonnet + * + */ +public interface Session { + + /** + * Stores an object that can be reused across successive http requests from the same user. Implementations can + * decide to store the objects serialized in a cookie on the client side or server side with some session tracking + * mechanism. + * + * @param key + * @param value + */ + void setAttribute(String key, Serializable value); + + /** + * Retrieves an Object previously stored with method @see #setSessionAttribute(String, Serializable) or + * <code>null</code>. + * + * @param key + * @return the previously stored object or <code>null</code> + */ + Serializable getAttribute(String key); + +} Modified: trunk/esigate-core/src/main/java/org/esigate/authentication/RequestAuthenticationHandler.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/authentication/RequestAuthenticationHandler.java 2014-01-13 10:59:46 UTC (rev 1528) +++ trunk/esigate-core/src/main/java/org/esigate/authentication/RequestAuthenticationHandler.java 2014-01-13 12:30:40 UTC (rev 1529) @@ -21,7 +21,6 @@ import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; -import org.esigate.api.ContainerRequestMediator; import org.esigate.http.IncomingRequest; import org.esigate.http.OutgoingRequest; import org.slf4j.Logger; @@ -102,9 +101,8 @@ LOG.debug("preRequest"); // Process session - ContainerRequestMediator mediator = request.getMediator(); for (String attribute : this.sessionAttributes) { - String value = (String) mediator.getSessionAttribute(attribute); + String value = (String) httpRequest.getSession().getAttribute(attribute); if (value != null) { LOG.debug("Adding session attribute {} ({}) as header ({}{})", attribute, value, this.headerPrefix, attribute); Modified: trunk/esigate-core/src/main/java/org/esigate/http/IncomingRequest.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/http/IncomingRequest.java 2014-01-13 10:59:46 UTC (rev 1528) +++ trunk/esigate-core/src/main/java/org/esigate/http/IncomingRequest.java 2014-01-13 12:30:40 UTC (rev 1529) @@ -25,6 +25,7 @@ import org.apache.http.cookie.Cookie; import org.apache.http.message.BasicHttpEntityEnclosingRequest; import org.esigate.api.ContainerRequestMediator; +import org.esigate.api.Session; /** * Represents an incoming http request. @@ -42,6 +43,7 @@ private Principal userPrincipal; private List<Cookie> cookies = new ArrayList<Cookie>(); private List<Cookie> newCookies = new ArrayList<Cookie>(); + private Session session; public IncomingRequest(RequestLine requestline, ContainerRequestMediator mediator) { super(requestline); @@ -108,4 +110,12 @@ newCookies.add(cookie); } + public Session getSession() { + return session; + } + + public void setSession(Session session) { + this.session = session; + } + } Modified: trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java 2014-01-13 10:59:46 UTC (rev 1528) +++ trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java 2014-01-13 12:30:40 UTC (rev 1529) @@ -16,7 +16,6 @@ package org.esigate.servlet; import java.io.IOException; -import java.io.Serializable; import java.util.Enumeration; import javax.servlet.FilterChain; @@ -39,8 +38,6 @@ import org.esigate.api.ContainerRequestMediator; import org.esigate.http.IncomingRequest; import org.esigate.util.UriUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * This mediator converts esigate request/responses to Servlet request/responses. @@ -53,20 +50,11 @@ * */ public class HttpServletMediator implements ContainerRequestMediator { - private static final String WARN_RESPONSE_ALREADY_SENT = "Attempt to write to the response, " - + "but it is already sent. The operation {} was discarded. " - + "This usually means that esigate is configured " + "with stale-while-revalidate is enabled " - + "AND backend is sending a cookie update which is not discarded by configuration. " - + "This configuration is unsupported. Please update configuration to turn off stale-while-revalidate " - + "or discard cookies. "; - private static final Logger LOG = LoggerFactory.getLogger(HttpServletMediator.class); - private final HttpServletRequest request; private final HttpServletResponse response; private final ServletContext servletContext; private final IncomingRequest httpRequest; - private boolean responseSent = false; private final FilterChain filterChain; public HttpServletMediator(HttpServletRequest request, HttpServletResponse response, ServletContext servletContext) @@ -137,6 +125,7 @@ result.addCookie(dest); } } + result.setSession(new HttpServletSession(request)); this.httpRequest = result; } @@ -163,69 +152,42 @@ } public void sendResponse(HttpResponse httpResponse) throws IOException { + response.setStatus(httpResponse.getStatusLine().getStatusCode()); + for (Header header : httpResponse.getAllHeaders()) { + String name = header.getName(); + String value = header.getValue(); + response.addHeader(name, value); + } - try { - response.setStatus(httpResponse.getStatusLine().getStatusCode()); - for (Header header : httpResponse.getAllHeaders()) { - String name = header.getName(); - String value = header.getValue(); - response.addHeader(name, value); - } + // Copy new cookies + Cookie[] newCookies = httpRequest.getNewCookies(); + for (int i = 0; i < newCookies.length; i++) { + response.addCookie(rewriteCookie(newCookies[i])); + } - // Copy new cookies - Cookie[] newCookies = httpRequest.getNewCookies(); - for (int i = 0; i < newCookies.length; i++) { - response.addCookie(rewriteCookie(newCookies[i])); + HttpEntity httpEntity = httpResponse.getEntity(); + if (httpEntity != null) { + long contentLength = httpEntity.getContentLength(); + if (contentLength > -1 && contentLength < Integer.MAX_VALUE) { + response.setContentLength((int) contentLength); } - - HttpEntity httpEntity = httpResponse.getEntity(); - if (httpEntity != null) { - long contentLength = httpEntity.getContentLength(); - if (contentLength > -1 && contentLength < Integer.MAX_VALUE) { - response.setContentLength((int) contentLength); - } - Header contentType = httpEntity.getContentType(); - if (contentType != null) { - response.setContentType(contentType.getValue()); - } - Header contentEncoding = httpEntity.getContentEncoding(); - if (contentEncoding != null) { - response.setHeader(contentEncoding.getName(), contentEncoding.getValue()); - } - - httpEntity.writeTo(response.getOutputStream()); - } else { - response.sendError(httpResponse.getStatusLine().getStatusCode(), httpResponse.getStatusLine() - .getReasonPhrase()); + Header contentType = httpEntity.getContentType(); + if (contentType != null) { + response.setContentType(contentType.getValue()); } - } finally { - this.responseSent = true; - } - } + Header contentEncoding = httpEntity.getContentEncoding(); + if (contentEncoding != null) { + response.setHeader(contentEncoding.getName(), contentEncoding.getValue()); + } - @Override - public void setSessionAttribute(String key, Serializable value) { - - if (this.responseSent) { - LOG.warn(WARN_RESPONSE_ALREADY_SENT, "Set session attribute '" + key + "'"); - return; + httpEntity.writeTo(response.getOutputStream()); + } else { + response.sendError(httpResponse.getStatusLine().getStatusCode(), httpResponse.getStatusLine() + .getReasonPhrase()); } - - HttpSession session = this.request.getSession(); - session.setAttribute(key, value); - } @Override - public Serializable getSessionAttribute(String key) { - HttpSession session = this.request.getSession(false); - if (session == null) { - return null; - } - return (Serializable) session.getAttribute(key); - } - - @Override public IncomingRequest getHttpRequest() { return httpRequest; } Added: trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletSession.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletSession.java (rev 0) +++ trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletSession.java 2014-01-13 12:30:40 UTC (rev 1529) @@ -0,0 +1,58 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.esigate.servlet; + +import java.io.Serializable; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.esigate.api.Session; + +/** + * Encapsulates servlet containes HttpSession mechanism. + * + * @author Francois-Xavier Bonnet + * + */ +public class HttpServletSession implements Session { + + private final HttpServletRequest request; + + public HttpServletSession(HttpServletRequest request) { + this.request = request; + } + + @Override + public void setAttribute(String key, Serializable value) { + HttpSession session = this.request.getSession(); + // Session may be null on some servlet engines if the response has been sent already. This may happen for + // background revalidations. + if (session != null) { + session.setAttribute(key, value); + } + } + + @Override + public Serializable getAttribute(String key) { + HttpSession session = this.request.getSession(false); + if (session == null) { + return null; + } + return (Serializable) session.getAttribute(key); + } + +} Modified: trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java 2014-01-13 10:59:46 UTC (rev 1528) +++ trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java 2014-01-13 12:30:40 UTC (rev 1529) @@ -15,10 +15,6 @@ package org.esigate.test; -import java.io.Serializable; -import java.util.HashMap; -import java.util.Map; - import org.apache.http.HttpHost; import org.apache.http.HttpResponse; import org.apache.http.HttpVersion; @@ -37,7 +33,6 @@ * @author Nicolas Richeton */ public class MockMediator implements ContainerRequestMediator { - private final Map<String, Object> sessionAttributes = new HashMap<String, Object>(); private HttpResponse httpResponse; private IncomingRequest httpRequest; @@ -55,6 +50,8 @@ } else { this.httpRequest.setHeader("Host", host + ":" + port); } + this.httpRequest.setSession(new MockSession()); + } public MockMediator() { @@ -62,16 +59,6 @@ } @Override - public void setSessionAttribute(String key, Serializable value) { - this.sessionAttributes.put(key, value); - } - - @Override - public Serializable getSessionAttribute(String key) { - return (Serializable) this.sessionAttributes.get(key); - } - - @Override public IncomingRequest getHttpRequest() { return this.httpRequest; } Added: trunk/esigate-core/src/main/java/org/esigate/test/MockSession.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/test/MockSession.java (rev 0) +++ trunk/esigate-core/src/main/java/org/esigate/test/MockSession.java 2014-01-13 12:30:40 UTC (rev 1529) @@ -0,0 +1,45 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.esigate.test; + +import java.io.Serializable; +import java.util.HashMap; + +import org.esigate.api.Session; + +/** + * MockSession can be used in unit test. + * + * @see Session + * + * @author Francois-Xavier Bonnet + * @author Nicolas Richeton + */ +public class MockSession implements Session { + + private final HashMap<String, Serializable> map = new HashMap<String, Serializable>(); + + @Override + public void setAttribute(String key, Serializable value) { + map.put(key, value); + } + + @Override + public Serializable getAttribute(String key) { + return map.get(key); + } + +} Modified: trunk/esigate-core/src/test/java/org/esigate/servlet/HttpServletMediatorTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/servlet/HttpServletMediatorTest.java 2014-01-13 10:59:46 UTC (rev 1528) +++ trunk/esigate-core/src/test/java/org/esigate/servlet/HttpServletMediatorTest.java 2014-01-13 12:30:40 UTC (rev 1529) @@ -103,11 +103,11 @@ HttpServletMediator mediator = new HttpServletMediator(request, response, context); mediator.sendResponse(new HttpResponseBuilder().entity("Response").build()); - mediator.setSessionAttribute("test", "value"); + mediator.getHttpRequest().getSession().setAttribute("test", "value"); // Previous method should have no effect since session cannot be // created. - Assert.assertNull(mediator.getSessionAttribute("test")); + Assert.assertNull(mediator.getHttpRequest().getSession().getAttribute("test")); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-13 10:59:53
|
Revision: 1528 http://sourceforge.net/p/webassembletool/code/1528 Author: fxbonnet Date: 2014-01-13 10:59:46 +0000 (Mon, 13 Jan 2014) Log Message: ----------- 0000218: Move Mediator usage out of Driver#proxy and sub methods https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=218 Cookies Modified Paths: -------------- trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java trunk/esigate-core/src/main/java/org/esigate/cookie/DefaultCookieManager.java trunk/esigate-core/src/main/java/org/esigate/http/HttpClientRequestExecutor.java trunk/esigate-core/src/main/java/org/esigate/http/IncomingRequest.java trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java trunk/esigate-core/src/main/java/org/esigate/test/http/HttpRequestBuilder.java trunk/esigate-core/src/main/java/org/esigate/url/StickySessionBaseUrlRetrieveStrategy.java trunk/esigate-core/src/main/java/org/esigate/vars/VariablesResolver.java trunk/esigate-core/src/test/java/org/esigate/DriverCookieTest.java trunk/esigate-core/src/test/java/org/esigate/DriverTest.java trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java Modified: trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java 2014-01-08 17:15:48 UTC (rev 1527) +++ trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java 2014-01-13 10:59:46 UTC (rev 1528) @@ -17,7 +17,6 @@ import java.io.Serializable; -import org.apache.http.cookie.Cookie; import org.esigate.http.IncomingRequest; /** @@ -30,20 +29,6 @@ public interface ContainerRequestMediator { /** - * Retrieves the cookies from the Cookie header of the request. - * - * @return the cookies contained in the incoming request - */ - Cookie[] getCookies(); - - /** - * Sends a cookie to the client by adding a Set-cookie header to the response. - * - * @param cookie - */ - void addCookie(Cookie cookie); - - /** * Stores an object that can be reused across successive http requests from the same user. Implementations can * decide to store the objects serialized in a cookie on the client side or server side with some session tracking * mechanism. Modified: trunk/esigate-core/src/main/java/org/esigate/cookie/DefaultCookieManager.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/cookie/DefaultCookieManager.java 2014-01-08 17:15:48 UTC (rev 1527) +++ trunk/esigate-core/src/main/java/org/esigate/cookie/DefaultCookieManager.java 2014-01-13 10:59:46 UTC (rev 1528) @@ -93,7 +93,7 @@ } // Forward cookie in response. - originalRequest.getMediator().addCookie(rewriteForBrowser(cookie, originalRequest)); + originalRequest.getOriginalRequest().addNewCookie(rewriteForBrowser(cookie, originalRequest)); } else { if (LOG.isInfoEnabled()) { LOG.info("Cookie " + toString(cookie) + " -> storing to context"); @@ -126,7 +126,7 @@ } // Read cookie from request - Cookie[] requestCookies = originalRequest.getMediator().getCookies(); + Cookie[] requestCookies = originalRequest.getOriginalRequest().getCookies(); if (requestCookies != null) { for (Cookie cookie : requestCookies) { String name = cookie.getName(); Modified: trunk/esigate-core/src/main/java/org/esigate/http/HttpClientRequestExecutor.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/http/HttpClientRequestExecutor.java 2014-01-08 17:15:48 UTC (rev 1527) +++ trunk/esigate-core/src/main/java/org/esigate/http/HttpClientRequestExecutor.java 2014-01-13 10:59:46 UTC (rev 1528) @@ -229,15 +229,11 @@ OutgoingRequestContext context = new OutgoingRequestContext(); String method = (proxy) ? originalRequest.getRequestLine().getMethod().toUpperCase() : "GET"; - OutgoingRequest httpRequest; - if (SIMPLE_METHODS.contains(method)) { - httpRequest = new OutgoingRequest(method, uri, originalRequest.getProtocolVersion(), originalRequest, - config, context); - } else if (ENTITY_METHODS.contains(method)) { - httpRequest = new OutgoingRequest(method, uri, originalRequest.getProtocolVersion(), originalRequest, - config, context); + OutgoingRequest httpRequest = new OutgoingRequest(method, uri, originalRequest.getProtocolVersion(), + originalRequest, config, context); + if (ENTITY_METHODS.contains(method)) { httpRequest.setEntity(originalRequest.getEntity()); - } else { + } else if (!SIMPLE_METHODS.contains(method)) { throw new UnsupportedHttpMethodException(method + " " + uri); } Modified: trunk/esigate-core/src/main/java/org/esigate/http/IncomingRequest.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/http/IncomingRequest.java 2014-01-08 17:15:48 UTC (rev 1527) +++ trunk/esigate-core/src/main/java/org/esigate/http/IncomingRequest.java 2014-01-13 10:59:46 UTC (rev 1528) @@ -16,10 +16,13 @@ package org.esigate.http; import java.security.Principal; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.apache.http.RequestLine; +import org.apache.http.cookie.Cookie; import org.apache.http.message.BasicHttpEntityEnclosingRequest; import org.esigate.api.ContainerRequestMediator; @@ -37,6 +40,8 @@ private String remoteAddr; private String sessionId; private Principal userPrincipal; + private List<Cookie> cookies = new ArrayList<Cookie>(); + private List<Cookie> newCookies = new ArrayList<Cookie>(); public IncomingRequest(RequestLine requestline, ContainerRequestMediator mediator) { super(requestline); @@ -87,4 +92,20 @@ return userPrincipal; } + public Cookie[] getCookies() { + return cookies.toArray(new Cookie[cookies.size()]); + } + + public Cookie[] getNewCookies() { + return newCookies.toArray(new Cookie[newCookies.size()]); + } + + public void addCookie(Cookie cookie) { + cookies.add(cookie); + } + + public void addNewCookie(Cookie cookie) { + newCookies.add(cookie); + } + } Modified: trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java 2014-01-08 17:15:48 UTC (rev 1527) +++ trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java 2014-01-13 10:59:46 UTC (rev 1528) @@ -123,15 +123,9 @@ result.setSessionId(session.getId()); } result.setUserPrincipal(request.getUserPrincipal()); - this.httpRequest = result; - } - - @Override - public Cookie[] getCookies() { + // Copy cookies javax.servlet.http.Cookie[] src = request.getCookies(); - Cookie[] result = null; if (src != null) { - result = new Cookie[src.length]; for (int i = 0; i < src.length; i++) { javax.servlet.http.Cookie c = src[i]; BasicClientCookie dest = new BasicClientCookie(c.getName(), c.getValue()); @@ -140,22 +134,12 @@ dest.setPath(c.getPath()); dest.setComment(c.getComment()); dest.setVersion(c.getVersion()); - result[i] = dest; + result.addCookie(dest); } } - return result; + this.httpRequest = result; } - @Override - public void addCookie(Cookie src) { - if (this.responseSent) { - LOG.warn(WARN_RESPONSE_ALREADY_SENT, "Create cookie '" + src.getName() + "'"); - return; - } - - this.response.addCookie(rewriteCookie(src)); - } - static javax.servlet.http.Cookie rewriteCookie(Cookie src) { javax.servlet.http.Cookie servletCookie = new javax.servlet.http.Cookie(src.getName(), src.getValue()); @@ -187,6 +171,13 @@ String value = header.getValue(); response.addHeader(name, value); } + + // Copy new cookies + Cookie[] newCookies = httpRequest.getNewCookies(); + for (int i = 0; i < newCookies.length; i++) { + response.addCookie(rewriteCookie(newCookies[i])); + } + HttpEntity httpEntity = httpResponse.getEntity(); if (httpEntity != null) { long contentLength = httpEntity.getContentLength(); Modified: trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java 2014-01-08 17:15:48 UTC (rev 1527) +++ trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java 2014-01-13 10:59:46 UTC (rev 1528) @@ -16,7 +16,6 @@ package org.esigate.test; import java.io.Serializable; -import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @@ -24,7 +23,6 @@ import org.apache.http.HttpResponse; import org.apache.http.HttpVersion; import org.apache.http.RequestLine; -import org.apache.http.cookie.Cookie; import org.apache.http.message.BasicRequestLine; import org.esigate.api.ContainerRequestMediator; import org.esigate.http.IncomingRequest; @@ -40,7 +38,6 @@ */ public class MockMediator implements ContainerRequestMediator { private final Map<String, Object> sessionAttributes = new HashMap<String, Object>(); - private final ArrayList<Cookie> cookies = new ArrayList<Cookie>(); private HttpResponse httpResponse; private IncomingRequest httpRequest; @@ -65,17 +62,6 @@ } @Override - public Cookie[] getCookies() { - Cookie[] cookiesArray = new Cookie[this.cookies.size()]; - return this.cookies.toArray(cookiesArray); - } - - @Override - public void addCookie(Cookie cookie) { - this.cookies.add(cookie); - } - - @Override public void setSessionAttribute(String key, Serializable value) { this.sessionAttributes.put(key, value); } Modified: trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java 2014-01-08 17:15:48 UTC (rev 1527) +++ trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java 2014-01-13 10:59:46 UTC (rev 1528) @@ -50,13 +50,11 @@ } public static void addCookie(Cookie cookie, DriverRequest request) { - MockMediator mediator = (MockMediator) request.getMediator(); - mediator.addCookie(cookie); + request.getOriginalRequest().addCookie(cookie); } public static void addCookie(Cookie cookie, IncomingRequest request) { - MockMediator mediator = (MockMediator) request.getMediator(); - mediator.addCookie(cookie); + request.addCookie(cookie); } public static void setRemoteAddr(String remoteAddr, IncomingRequest request) { Modified: trunk/esigate-core/src/main/java/org/esigate/test/http/HttpRequestBuilder.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/test/http/HttpRequestBuilder.java 2014-01-08 17:15:48 UTC (rev 1527) +++ trunk/esigate-core/src/main/java/org/esigate/test/http/HttpRequestBuilder.java 2014-01-13 10:59:46 UTC (rev 1528) @@ -109,7 +109,7 @@ // In mediator if (requestMediator != null) { for (Cookie c : this.cookies) { - requestMediator.addCookie(c); + request.addCookie(c); } } Modified: trunk/esigate-core/src/main/java/org/esigate/url/StickySessionBaseUrlRetrieveStrategy.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/url/StickySessionBaseUrlRetrieveStrategy.java 2014-01-08 17:15:48 UTC (rev 1527) +++ trunk/esigate-core/src/main/java/org/esigate/url/StickySessionBaseUrlRetrieveStrategy.java 2014-01-13 10:59:46 UTC (rev 1528) @@ -18,7 +18,6 @@ import org.apache.http.cookie.Cookie; import org.apache.http.impl.cookie.BasicClientCookie; import org.esigate.api.BaseUrlRetrieveStrategy; -import org.esigate.api.ContainerRequestMediator; import org.esigate.http.IncomingRequest; public class StickySessionBaseUrlRetrieveStrategy implements BaseUrlRetrieveStrategy { @@ -36,8 +35,7 @@ @Override public String getBaseURL(IncomingRequest originalRequest) { - ContainerRequestMediator mediator = originalRequest.getMediator(); - Cookie sessionCookie = getEsiSessionCookie(mediator.getCookies()); + Cookie sessionCookie = getEsiSessionCookie(originalRequest.getCookies()); int index = 0; boolean toGenerate = true; @@ -62,7 +60,7 @@ if (toGenerate) { index = generateIndex(); Cookie cookie = new BasicClientCookie(ESI_SESSION_COOKIE_NAME, Integer.toString(index)); - mediator.addCookie(cookie); + originalRequest.addNewCookie(cookie); } return this.urls[index]; Modified: trunk/esigate-core/src/main/java/org/esigate/vars/VariablesResolver.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/vars/VariablesResolver.java 2014-01-08 17:15:48 UTC (rev 1527) +++ trunk/esigate-core/src/main/java/org/esigate/vars/VariablesResolver.java 2014-01-13 10:59:46 UTC (rev 1528) @@ -191,7 +191,7 @@ if (arg == null) { res = HttpRequestHelper.getFirstHeader("Cookie", request); } else { - Cookie[] cookies = request.getMediator().getCookies(); + Cookie[] cookies = request.getOriginalRequest().getCookies(); for (Cookie c : cookies) { if (c.getName().equals(arg)) { res = c.getValue(); Modified: trunk/esigate-core/src/test/java/org/esigate/DriverCookieTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/DriverCookieTest.java 2014-01-08 17:15:48 UTC (rev 1527) +++ trunk/esigate-core/src/test/java/org/esigate/DriverCookieTest.java 2014-01-13 10:59:46 UTC (rev 1528) @@ -25,7 +25,6 @@ import org.apache.http.HttpStatus; import org.apache.http.cookie.ClientCookie; import org.esigate.http.IncomingRequest; -import org.esigate.test.MockMediator; import org.esigate.test.conn.IResponseHandler; import org.esigate.test.driver.AbstractDriverTestCase; @@ -62,14 +61,12 @@ IncomingRequest request = createHttpRequest().uri("https://test.mydomain.fr/foobar/").mockMediator().build(); driverProxy(driver, request); - MockMediator m = (MockMediator) request.getMediator(); - Assert.assertTrue(((ClientCookie) m.getCookies()[0]).isSecure()); + Assert.assertTrue(((ClientCookie) request.getNewCookies()[0]).isSecure()); // Http request : Cookie is forwarded as NOT secure request = createHttpRequest().uri("http://test.mydomain.fr/foobar/").mockMediator().build(); driverProxy(driver, request); - m = (MockMediator) request.getMediator(); - Assert.assertFalse(((ClientCookie) m.getCookies()[0]).isSecure()); + Assert.assertFalse(((ClientCookie) request.getNewCookies()[0]).isSecure()); } } Modified: trunk/esigate-core/src/test/java/org/esigate/DriverTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/DriverTest.java 2014-01-08 17:15:48 UTC (rev 1527) +++ trunk/esigate-core/src/test/java/org/esigate/DriverTest.java 2014-01-13 10:59:46 UTC (rev 1528) @@ -42,7 +42,6 @@ import org.apache.http.message.BasicHeader; import org.apache.http.message.BasicHttpResponse; import org.apache.http.util.EntityUtils; -import org.esigate.api.ContainerRequestMediator; import org.esigate.esi.EsiRenderer; import org.esigate.extension.DefaultCharset; import org.esigate.http.DateUtils; @@ -613,7 +612,7 @@ driver.proxy("/foobar/", request); - assertTrue("Set-Cookie must be forwarded.", request.getMediator().getCookies().length > 0); + assertTrue("Set-Cookie must be forwarded.", request.getNewCookies().length > 0); } /** @@ -752,8 +751,7 @@ driver.proxy("http://wwww.external.server/foo/foobar.jsp", request); - ContainerRequestMediator mediator = request.getMediator(); - Assert.assertEquals(1, mediator.getCookies().length); + Assert.assertEquals(1, request.getNewCookies().length); } public void testRewriteCookiePath() throws Exception { @@ -778,9 +776,8 @@ driver.proxy("/foo/foobar.jsp", request); - ContainerRequestMediator mediator = request.getMediator(); - Assert.assertEquals(1, mediator.getCookies().length); - Assert.assertEquals("/foo", mediator.getCookies()[0].getPath()); + Assert.assertEquals(1, request.getNewCookies().length); + Assert.assertEquals("/foo", request.getNewCookies()[0].getPath()); } public void testRewriteCookiePathNotMatching() throws Exception { @@ -805,9 +802,8 @@ driver.proxy("/bar/foobar.jsp", request); - ContainerRequestMediator mediator = request.getMediator(); - Assert.assertEquals(1, mediator.getCookies().length); - Assert.assertEquals("/", mediator.getCookies()[0].getPath()); + Assert.assertEquals(1, request.getNewCookies().length); + Assert.assertEquals("/", request.getNewCookies()[0].getPath()); } /** Modified: trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java 2014-01-08 17:15:48 UTC (rev 1527) +++ trunk/esigate-core/src/test/java/org/esigate/http/HttpClientRequestExecutorTest.java 2014-01-13 10:59:46 UTC (rev 1528) @@ -27,7 +27,6 @@ import org.apache.commons.io.output.NullOutputStream; import org.apache.http.Header; import org.apache.http.HttpEntity; -import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.ProtocolVersion; @@ -444,8 +443,7 @@ sendRequestAndCheckHostHeader("http://www.foo.com:123", "http://localhost:8080", "www.bar.com:345", "www.bar.com:345"); // Should be copied as is even when default port - sendRequestAndCheckHostHeader("http://www.foo.com", "http://localhost:8080", "www.foo.com:80", - "www.foo.com:80"); + sendRequestAndCheckHostHeader("http://www.foo.com", "http://localhost:8080", "www.foo.com:80", "www.foo.com:80"); } /** @@ -512,7 +510,7 @@ } /** - * Executes 2 requests, there is a cookie sent in the response that contains spaces in the value. + * Test with a cookie sent in the response that contains spaces in the value. * * @throws Exception */ @@ -529,12 +527,8 @@ response.addHeader("Set-Cookie", "test=\"a b\"; Version=1"); mockConnectionManager.setResponse(response); httpClientRequestExecutor.execute(request); - request = httpClientRequestExecutor.createHttpRequest(originalRequest, "http://localhost:8080", false); - httpClientRequestExecutor.execute(request); - HttpRequest sentRequest = mockConnectionManager.getSentRequest(); - assertNotNull(sentRequest.getHeaders("Cookie")); - assertEquals(1, sentRequest.getHeaders("Cookie").length); - assertEquals("test=\"a b\"", sentRequest.getHeaders("Cookie")[0].getValue()); + assertEquals(1, originalRequest.getOriginalRequest().getNewCookies().length); + assertEquals("a b", originalRequest.getOriginalRequest().getNewCookies()[0].getValue()); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-08 17:15:51
|
Revision: 1527 http://sourceforge.net/p/webassembletool/code/1527 Author: fxbonnet Date: 2014-01-08 17:15:48 +0000 (Wed, 08 Jan 2014) Log Message: ----------- 0000218: Move Mediator usage out of Driver#proxy and sub methods https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=218 Work still in progress Modified Paths: -------------- trunk/esigate-app-aggregator/src/test/java/org/esigate/test/cases/Bug101ConnectionReleaseTest.java trunk/esigate-core/src/main/java/org/esigate/Driver.java trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeBlockElement.java trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeTemplateElement.java trunk/esigate-core/src/main/java/org/esigate/esi/IncludeElement.java trunk/esigate-core/src/main/java/org/esigate/extension/parallelesi/IncludeElement.java trunk/esigate-core/src/main/java/org/esigate/http/ResourceUtils.java trunk/esigate-core/src/main/java/org/esigate/impl/DriverRequest.java trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java trunk/esigate-core/src/main/java/org/esigate/xml/XsltRenderer.java trunk/esigate-core/src/test/java/org/esigate/DriverTest.java Modified: trunk/esigate-app-aggregator/src/test/java/org/esigate/test/cases/Bug101ConnectionReleaseTest.java =================================================================== --- trunk/esigate-app-aggregator/src/test/java/org/esigate/test/cases/Bug101ConnectionReleaseTest.java 2014-01-08 17:01:23 UTC (rev 1526) +++ trunk/esigate-app-aggregator/src/test/java/org/esigate/test/cases/Bug101ConnectionReleaseTest.java 2014-01-08 17:15:48 UTC (rev 1527) @@ -25,7 +25,7 @@ StringBuilderWriter writer = new StringBuilderWriter(); IncomingRequest httpRequest = TestUtils.createRequest(); try { - CloseableHttpResponse response = driver.render("/esigate-app-aggregated1/" + page, null, httpRequest, + CloseableHttpResponse response = driver.render("/esigate-app-aggregated1/" + page, httpRequest, new BlockRenderer(null, "/esigate-app-aggregated1/" + page)); writer.append(HttpResponseUtils.toString(response)); writer.close(); Modified: trunk/esigate-core/src/main/java/org/esigate/Driver.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/Driver.java 2014-01-08 17:01:23 UTC (rev 1526) +++ trunk/esigate-core/src/main/java/org/esigate/Driver.java 2014-01-08 17:15:48 UTC (rev 1527) @@ -19,7 +19,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Map; import java.util.Properties; import org.apache.commons.io.output.StringBuilderWriter; @@ -126,8 +125,6 @@ * * @param pageUrl * Address of the page containing the template - * @param parameters - * parameters to be added to the request * @param incomingRequest * originating request object * @param renderers @@ -138,10 +135,10 @@ * @throws HttpErrorPage * If an Exception occurs while retrieving the template */ - public CloseableHttpResponse render(String pageUrl, Map<String, String> parameters, - IncomingRequest incomingRequest, Renderer... renderers) throws IOException, HttpErrorPage { + public CloseableHttpResponse render(String pageUrl, IncomingRequest incomingRequest, Renderer... renderers) + throws IOException, HttpErrorPage { boolean external = UriUtils.isAbsolute(pageUrl); - DriverRequest driverRequest = new DriverRequest(incomingRequest, this, parameters, external); + DriverRequest driverRequest = new DriverRequest(incomingRequest, this, external); // Replace ESI variables in URL // TODO: should be performed in the ESI extension @@ -232,7 +229,7 @@ public CloseableHttpResponse proxy(String relUrl, IncomingRequest request, Renderer... renderers) throws IOException, HttpErrorPage { boolean external = UriUtils.isAbsolute(relUrl); - DriverRequest driverRequest = new DriverRequest(request, this, null, external); + DriverRequest driverRequest = new DriverRequest(request, this, external); driverRequest.setCharacterEncoding(this.config.getUriEncoding()); // This is used to ensure EVENT_PROXY_POST is called once and only once. Modified: trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeBlockElement.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeBlockElement.java 2014-01-08 17:01:23 UTC (rev 1526) +++ trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeBlockElement.java 2014-01-08 17:15:48 UTC (rev 1527) @@ -64,7 +64,7 @@ String page = tagAttributes.getPage(); String name = tagAttributes.getName(); - CloseableHttpResponse response = driver.render(page, null, ctx.getHttpRequest().getOriginalRequest(), + CloseableHttpResponse response = driver.render(page, ctx.getHttpRequest().getOriginalRequest(), new BlockRenderer(name, page), new AggregateRenderer()); new Adapter(ctx.getCurrent()).append(HttpResponseUtils.toString(response)); } Modified: trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeTemplateElement.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeTemplateElement.java 2014-01-08 17:01:23 UTC (rev 1526) +++ trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeTemplateElement.java 2014-01-08 17:15:48 UTC (rev 1527) @@ -72,7 +72,7 @@ @Override public void onTagEnd(String tag, ParserContext ctx) throws IOException, HttpErrorPage { - CloseableHttpResponse response = driver.render(page, null, ctx.getHttpRequest().getOriginalRequest(), + CloseableHttpResponse response = driver.render(page, ctx.getHttpRequest().getOriginalRequest(), new TemplateRenderer(name, params, page), new AggregateRenderer()); out.append(HttpResponseUtils.toString(response)); } Modified: trunk/esigate-core/src/main/java/org/esigate/esi/IncludeElement.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/esi/IncludeElement.java 2014-01-08 17:01:23 UTC (rev 1526) +++ trunk/esigate-core/src/main/java/org/esigate/esi/IncludeElement.java 2014-01-08 17:15:48 UTC (rev 1527) @@ -208,7 +208,7 @@ } else if (xslt != null) { rendererList.add(new XsltRenderer(xslt, driver, httpRequest)); } - CloseableHttpResponse response = driver.render(page, null, httpRequest.getOriginalRequest(), + CloseableHttpResponse response = driver.render(page, httpRequest.getOriginalRequest(), rendererList.toArray(new Renderer[rendererList.size()])); outAdapter.append(HttpResponseUtils.toString(response)); } Modified: trunk/esigate-core/src/main/java/org/esigate/extension/parallelesi/IncludeElement.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/extension/parallelesi/IncludeElement.java 2014-01-08 17:01:23 UTC (rev 1526) +++ trunk/esigate-core/src/main/java/org/esigate/extension/parallelesi/IncludeElement.java 2014-01-08 17:15:48 UTC (rev 1527) @@ -212,7 +212,7 @@ } else if (xslt != null) { rendererList.add(new XsltRenderer(xslt, driver, httpRequest)); } - CloseableHttpResponse response = driver.render(page, null, httpRequest.getOriginalRequest(), + CloseableHttpResponse response = driver.render(page, httpRequest.getOriginalRequest(), rendererList.toArray(new Renderer[rendererList.size()])); out.append(HttpResponseUtils.toString(response)); } Modified: trunk/esigate-core/src/main/java/org/esigate/http/ResourceUtils.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/http/ResourceUtils.java 2014-01-08 17:01:23 UTC (rev 1526) +++ trunk/esigate-core/src/main/java/org/esigate/http/ResourceUtils.java 2014-01-08 17:15:48 UTC (rev 1527) @@ -15,11 +15,6 @@ package org.esigate.http; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.util.Map; -import java.util.Map.Entry; - import org.esigate.Parameters; import org.esigate.impl.DriverRequest; import org.esigate.util.UriUtils; @@ -39,45 +34,25 @@ } private static String buildQueryString(DriverRequest originalRequest, boolean proxy) { - try { - StringBuilder queryString = new StringBuilder(Parameters.SMALL_BUFFER_SIZE); - String charset = originalRequest.getCharacterEncoding(); - if (charset == null) { - charset = "ISO-8859-1"; - } - String originalQuerystring = UriUtils.getRawQuery(originalRequest.getRequestLine().getUri()); - if (proxy && originalQuerystring != null) { - // Remove jsessionid from request if it is present - // As we are in a java application, the container might add - // jsessionid to the querystring. We must not forward it to - // included applications. - String jsessionid = null; - jsessionid = originalRequest.getOriginalRequest().getSessionId(); - if (jsessionid != null) { - originalQuerystring = UriUtils.removeSessionId(jsessionid, originalQuerystring); - } - queryString.append(originalQuerystring); - } - Map<String, String> parameters = originalRequest.getParameters(); - if (parameters != null) { - ResourceUtils.appendParameters(queryString, charset, parameters); - } - return queryString.toString(); - } catch (UnsupportedEncodingException e) { - throw new RuntimeException(e); + StringBuilder queryString = new StringBuilder(Parameters.SMALL_BUFFER_SIZE); + String charset = originalRequest.getCharacterEncoding(); + if (charset == null) { + charset = "ISO-8859-1"; } - } - - private static void appendParameters(StringBuilder buf, String charset, Map<String, String> params) - throws UnsupportedEncodingException { - for (Entry<String, String> param : params.entrySet()) { - if (buf.length() > 0) { - buf.append("&"); + String originalQuerystring = UriUtils.getRawQuery(originalRequest.getRequestLine().getUri()); + if (proxy && originalQuerystring != null) { + // Remove jsessionid from request if it is present + // As we are in a java application, the container might add + // jsessionid to the querystring. We must not forward it to + // included applications. + String jsessionid = null; + jsessionid = originalRequest.getOriginalRequest().getSessionId(); + if (jsessionid != null) { + originalQuerystring = UriUtils.removeSessionId(jsessionid, originalQuerystring); } - buf.append(URLEncoder.encode(param.getKey(), charset)); - buf.append("="); - buf.append(URLEncoder.encode(param.getValue(), charset)); + queryString.append(originalQuerystring); } + return queryString.toString(); } private static String concatUrl(String baseUrl, String relUrl) { Modified: trunk/esigate-core/src/main/java/org/esigate/impl/DriverRequest.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/impl/DriverRequest.java 2014-01-08 17:01:23 UTC (rev 1526) +++ trunk/esigate-core/src/main/java/org/esigate/impl/DriverRequest.java 2014-01-08 17:15:48 UTC (rev 1527) @@ -2,7 +2,6 @@ import java.net.MalformedURLException; import java.net.URL; -import java.util.Map; import org.apache.http.Header; import org.apache.http.HeaderIterator; @@ -20,17 +19,14 @@ public class DriverRequest implements HttpEntityEnclosingRequest { private final IncomingRequest wrappedRequest; private final Driver driver; - private final Map<String, String> parameters; private final UserContext userContext; private final URL baseUrl; private final boolean external; private String characterEncoding; - public DriverRequest(IncomingRequest request, Driver driver, Map<String, String> parameters, boolean external) - throws HttpErrorPage { + public DriverRequest(IncomingRequest request, Driver driver, boolean external) throws HttpErrorPage { this.wrappedRequest = request; this.driver = driver; - this.parameters = parameters; this.external = external; this.userContext = new UserContext(request, driver.getConfiguration().getInstanceName()); try { @@ -152,10 +148,6 @@ return driver; } - public Map<String, String> getParameters() { - return parameters; - } - public UserContext getUserContext() { return userContext; } Modified: trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java 2014-01-08 17:01:23 UTC (rev 1526) +++ trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java 2014-01-08 17:15:48 UTC (rev 1527) @@ -15,23 +15,17 @@ package org.esigate.test; -import java.io.IOException; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; -import org.apache.http.HttpEntity; import org.apache.http.HttpHost; import org.apache.http.HttpResponse; import org.apache.http.HttpVersion; import org.apache.http.RequestLine; import org.apache.http.cookie.Cookie; -import org.apache.http.entity.ByteArrayEntity; -import org.apache.http.entity.ContentType; -import org.apache.http.message.BasicHttpResponse; import org.apache.http.message.BasicRequestLine; -import org.apache.http.util.EntityUtils; import org.esigate.api.ContainerRequestMediator; import org.esigate.http.IncomingRequest; import org.esigate.util.UriUtils; Modified: trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java 2014-01-08 17:01:23 UTC (rev 1526) +++ trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java 2014-01-08 17:15:48 UTC (rev 1527) @@ -15,8 +15,6 @@ package org.esigate.test; -import java.io.IOException; - import org.apache.http.cookie.Cookie; import org.esigate.Driver; import org.esigate.HttpErrorPage; @@ -39,7 +37,7 @@ public static DriverRequest createRequest(Driver driver) throws HttpErrorPage { IncomingRequest request = new MockMediator().getHttpRequest(); - return new DriverRequest(request, driver, null, false); + return new DriverRequest(request, driver, false); } public static IncomingRequest createRequest(String uri) { @@ -48,7 +46,7 @@ public static DriverRequest createRequest(String uri, Driver driver) throws HttpErrorPage { IncomingRequest request = new MockMediator(uri).getHttpRequest(); - return new DriverRequest(request, driver, null, false); + return new DriverRequest(request, driver, false); } public static void addCookie(Cookie cookie, DriverRequest request) { Modified: trunk/esigate-core/src/main/java/org/esigate/xml/XsltRenderer.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/xml/XsltRenderer.java 2014-01-08 17:01:23 UTC (rev 1526) +++ trunk/esigate-core/src/main/java/org/esigate/xml/XsltRenderer.java 2014-01-08 17:15:48 UTC (rev 1527) @@ -70,7 +70,7 @@ public XsltRenderer(String template, Driver driver, DriverRequest originalRequest) throws IOException, HttpErrorPage { StringBuilder templateStringBuilder = new StringBuilder(); - CloseableHttpResponse response = driver.render(template, null, originalRequest.getOriginalRequest()); + CloseableHttpResponse response = driver.render(template, originalRequest.getOriginalRequest()); templateStringBuilder.append(HttpResponseUtils.toString(response)); transformer = createTransformer(IOUtils.toInputStream(templateStringBuilder)); } Modified: trunk/esigate-core/src/test/java/org/esigate/DriverTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/DriverTest.java 2014-01-08 17:01:23 UTC (rev 1526) +++ trunk/esigate-core/src/test/java/org/esigate/DriverTest.java 2014-01-08 17:15:48 UTC (rev 1527) @@ -76,16 +76,16 @@ } public void testRenderBlock() throws IOException, HttpErrorPage { - CloseableHttpResponse response = DriverFactory.getInstance("mock").render("/testBlock", null, request, + CloseableHttpResponse response = DriverFactory.getInstance("mock").render("/testBlock", request, new BlockRenderer("A", "/testBlock")); assertEquals("some text goes here", HttpResponseUtils.toString(response)); - response = DriverFactory.getInstance("mock").render("$(vartestBlock)", null, request, + response = DriverFactory.getInstance("mock").render("$(vartestBlock)", request, new BlockRenderer("A", "$(vartestBlock)")); assertEquals("some text goes here", HttpResponseUtils.toString(response)); - response = DriverFactory.getInstance("mock").render("/$(vartest)$(varBlock)", null, request, + response = DriverFactory.getInstance("mock").render("/$(vartest)$(varBlock)", request, new BlockRenderer("A", "/$(vartest)$(varBlock)")); assertEquals("some text goes here", HttpResponseUtils.toString(response)); @@ -95,8 +95,8 @@ HashMap<String, String> params = new HashMap<String, String>(); params.put("key", "'value'"); params.put("some other key", "'another value'"); - CloseableHttpResponse response = DriverFactory.getInstance("mock").render("/testTemplateFullPage", null, - request, new TemplateRenderer(null, params, "/testTemplateFullPage")); + CloseableHttpResponse response = DriverFactory.getInstance("mock").render("/testTemplateFullPage", request, + new TemplateRenderer(null, params, "/testTemplateFullPage")); String result = HttpResponseUtils.toString(response); assertFalse(result.contains("key")); assertTrue(result.contains("'value'")); @@ -105,11 +105,11 @@ } public void testRenderTemplate() throws IOException, HttpErrorPage { - CloseableHttpResponse response = DriverFactory.getInstance("mock").render("/testTemplate", null, request, + CloseableHttpResponse response = DriverFactory.getInstance("mock").render("/testTemplate", request, new TemplateRenderer("A", null, "/testTemplate")); assertEquals("some text goes here", HttpResponseUtils.toString(response)); - response = DriverFactory.getInstance("mock").render("/test$(varTemplate)", null, request, + response = DriverFactory.getInstance("mock").render("/test$(varTemplate)", request, new TemplateRenderer("A", null, "/test$(varTemplate)")); assertEquals("some text goes here", HttpResponseUtils.toString(response)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-08 17:01:26
|
Revision: 1526 http://sourceforge.net/p/webassembletool/code/1526 Author: fxbonnet Date: 2014-01-08 17:01:23 +0000 (Wed, 08 Jan 2014) Log Message: ----------- 0000218: Move Mediator usage out of Driver#proxy and sub methods https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=218 Work still in progress Modified Paths: -------------- trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java Modified: trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java 2014-01-08 16:52:41 UTC (rev 1525) +++ trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java 2014-01-08 17:01:23 UTC (rev 1526) @@ -81,19 +81,6 @@ this.cookies.add(cookie); } - public void sendResponse(HttpResponse response) throws IOException { - this.httpResponse = new BasicHttpResponse(response.getStatusLine()); - this.httpResponse.setHeaders(response.getAllHeaders()); - HttpEntity entity = response.getEntity(); - if (entity != null) { - ByteArrayEntity copiedEntity = new ByteArrayEntity(EntityUtils.toByteArray(entity), ContentType.get(entity)); - if (entity.getContentEncoding() != null) { - copiedEntity.setContentEncoding(entity.getContentEncoding()); - } - this.httpResponse.setEntity(copiedEntity); - } - } - @Override public void setSessionAttribute(String key, Serializable value) { this.sessionAttributes.put(key, value); Modified: trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java 2014-01-08 16:52:41 UTC (rev 1525) +++ trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java 2014-01-08 17:01:23 UTC (rev 1526) @@ -51,11 +51,6 @@ return new DriverRequest(request, driver, null, false); } - public static void sendHttpErrorPage(HttpErrorPage e, IncomingRequest request) throws IOException { - MockMediator mediator = (MockMediator) request.getMediator(); - mediator.sendResponse(e.getHttpResponse()); - } - public static void addCookie(Cookie cookie, DriverRequest request) { MockMediator mediator = (MockMediator) request.getMediator(); mediator.addCookie(cookie); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2014-01-08 16:52:46
|
Revision: 1525 http://sourceforge.net/p/webassembletool/code/1525 Author: fxbonnet Date: 2014-01-08 16:52:41 +0000 (Wed, 08 Jan 2014) Log Message: ----------- 0000218: Move Mediator usage out of Driver#proxy and sub methods https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=218 Changed Driver.render and Driver.proxy signatures. Work still in progress Modified Paths: -------------- trunk/esigate-app-aggregator/src/test/java/org/esigate/test/cases/Bug101ConnectionReleaseTest.java trunk/esigate-core/src/main/java/org/esigate/Driver.java trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeBlockElement.java trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeTemplateElement.java trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java trunk/esigate-core/src/main/java/org/esigate/esi/IncludeElement.java trunk/esigate-core/src/main/java/org/esigate/extension/parallelesi/IncludeElement.java trunk/esigate-core/src/main/java/org/esigate/http/HttpResponseUtils.java trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java trunk/esigate-core/src/main/java/org/esigate/servlet/ProxyFilter.java trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java trunk/esigate-core/src/main/java/org/esigate/test/driver/AbstractDriverTestCase.java trunk/esigate-core/src/main/java/org/esigate/xml/XsltRenderer.java trunk/esigate-core/src/test/java/org/esigate/DriverTest.java trunk/esigate-core/src/test/java/org/esigate/vars/DriverEsiVariablesTest.java trunk/esigate-core/src/test/java/org/esigate/vars/DriverEsiWhenTest.java Modified: trunk/esigate-app-aggregator/src/test/java/org/esigate/test/cases/Bug101ConnectionReleaseTest.java =================================================================== --- trunk/esigate-app-aggregator/src/test/java/org/esigate/test/cases/Bug101ConnectionReleaseTest.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-app-aggregator/src/test/java/org/esigate/test/cases/Bug101ConnectionReleaseTest.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -1,14 +1,16 @@ package org.esigate.test.cases; import java.io.IOException; -import org.apache.commons.io.output.StringBuilderWriter; import java.util.Properties; import junit.framework.Assert; +import org.apache.commons.io.output.StringBuilderWriter; +import org.apache.http.client.methods.CloseableHttpResponse; import org.esigate.Driver; import org.esigate.HttpErrorPage; import org.esigate.Parameters; +import org.esigate.http.HttpResponseUtils; import org.esigate.http.IncomingRequest; import org.esigate.tags.BlockRenderer; import org.esigate.test.TestUtils; @@ -23,8 +25,10 @@ StringBuilderWriter writer = new StringBuilderWriter(); IncomingRequest httpRequest = TestUtils.createRequest(); try { - driver.render("/esigate-app-aggregated1/" + page, null, writer, httpRequest, new BlockRenderer(null, - "/esigate-app-aggregated1/" + page)); + CloseableHttpResponse response = driver.render("/esigate-app-aggregated1/" + page, null, httpRequest, + new BlockRenderer(null, "/esigate-app-aggregated1/" + page)); + writer.append(HttpResponseUtils.toString(response)); + writer.close(); } catch (HttpErrorPage e) { LOG.info(page + " -> " + e.getHttpResponse().getStatusLine().getStatusCode()); } Modified: trunk/esigate-core/src/main/java/org/esigate/Driver.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/Driver.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/main/java/org/esigate/Driver.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -128,18 +128,17 @@ * Address of the page containing the template * @param parameters * parameters to be added to the request - * @param writer - * Writer where to write the result * @param incomingRequest * originating request object * @param renderers * the renderers to use in order to transform the output + * @return The resulting response * @throws IOException * If an IOException occurs while writing to the writer * @throws HttpErrorPage * If an Exception occurs while retrieving the template */ - public void render(String pageUrl, Map<String, String> parameters, Appendable writer, + public CloseableHttpResponse render(String pageUrl, Map<String, String> parameters, IncomingRequest incomingRequest, Renderer... renderers) throws IOException, HttpErrorPage { boolean external = UriUtils.isAbsolute(pageUrl); DriverRequest driverRequest = new DriverRequest(incomingRequest, this, parameters, external); @@ -177,8 +176,9 @@ // Apply renderers currentValue = performRendering(pageUrl, driverRequest, response, currentValue, renderers); - // Output result - writer.append(currentValue); + response.setEntity(new StringEntity(currentValue, HttpResponseUtils.getContentType(response))); + + return response; } /** @@ -223,12 +223,14 @@ * the request * @param renderers * the renderers to use to transform the output + * @return The resulting response. * @throws IOException * If an IOException occurs while writing to the response * @throws HttpErrorPage * If the page contains incorrect tags */ - public void proxy(String relUrl, IncomingRequest request, Renderer... renderers) throws IOException, HttpErrorPage { + public CloseableHttpResponse proxy(String relUrl, IncomingRequest request, Renderer... renderers) + throws IOException, HttpErrorPage { boolean external = UriUtils.isAbsolute(relUrl); DriverRequest driverRequest = new DriverRequest(request, this, null, external); driverRequest.setCharacterEncoding(this.config.getUriEncoding()); @@ -248,7 +250,7 @@ this.eventManager.fire(EventManager.EVENT_PROXY_PRE, e); // Return immediately if exit is requested by extension if (e.isExit()) { - return; + return e.getResponse(); } logAction("proxy", relUrl, renderers); @@ -266,7 +268,7 @@ this.eventManager.fire(EventManager.EVENT_PROXY_POST, e); // Send request to the client. - request.getMediator().sendResponse(e.getResponse()); + return e.getResponse(); } catch (HttpErrorPage errorPage) { e.setErrorPage(errorPage); Modified: trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeBlockElement.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeBlockElement.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeBlockElement.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -17,8 +17,10 @@ import java.io.IOException; +import org.apache.http.client.methods.CloseableHttpResponse; import org.esigate.Driver; import org.esigate.HttpErrorPage; +import org.esigate.http.HttpResponseUtils; import org.esigate.parser.Adapter; import org.esigate.parser.Element; import org.esigate.parser.ElementType; @@ -62,8 +64,9 @@ String page = tagAttributes.getPage(); String name = tagAttributes.getName(); - driver.render(page, null, new Adapter(ctx.getCurrent()), ctx.getHttpRequest().getOriginalRequest(), + CloseableHttpResponse response = driver.render(page, null, ctx.getHttpRequest().getOriginalRequest(), new BlockRenderer(name, page), new AggregateRenderer()); + new Adapter(ctx.getCurrent()).append(HttpResponseUtils.toString(response)); } @Override Modified: trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeTemplateElement.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeTemplateElement.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/main/java/org/esigate/aggregator/IncludeTemplateElement.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -19,8 +19,10 @@ import java.util.HashMap; import java.util.Map; +import org.apache.http.client.methods.CloseableHttpResponse; import org.esigate.Driver; import org.esigate.HttpErrorPage; +import org.esigate.http.HttpResponseUtils; import org.esigate.parser.Adapter; import org.esigate.parser.Element; import org.esigate.parser.ElementType; @@ -70,8 +72,9 @@ @Override public void onTagEnd(String tag, ParserContext ctx) throws IOException, HttpErrorPage { - driver.render(page, null, out, ctx.getHttpRequest().getOriginalRequest(), new TemplateRenderer(name, params, - page), new AggregateRenderer()); + CloseableHttpResponse response = driver.render(page, null, ctx.getHttpRequest().getOriginalRequest(), + new TemplateRenderer(name, params, page), new AggregateRenderer()); + out.append(HttpResponseUtils.toString(response)); } public void addParam(String name, String value) { Modified: trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/main/java/org/esigate/api/ContainerRequestMediator.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -15,10 +15,8 @@ package org.esigate.api; -import java.io.IOException; import java.io.Serializable; -import org.apache.http.HttpResponse; import org.apache.http.cookie.Cookie; import org.esigate.http.IncomingRequest; @@ -46,15 +44,6 @@ void addCookie(Cookie cookie); /** - * Writes the response produced by EsiGate to the client. This includes response status line, headers and HttpEntity - * - * @param response - * @throws IOException - * if an problem occurs while writing to the network connection - */ - void sendResponse(HttpResponse response) throws IOException; - - /** * Stores an object that can be reused across successive http requests from the same user. Implementations can * decide to store the objects serialized in a cookie on the client side or server side with some session tracking * mechanism. Modified: trunk/esigate-core/src/main/java/org/esigate/esi/IncludeElement.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/esi/IncludeElement.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/main/java/org/esigate/esi/IncludeElement.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -23,11 +23,13 @@ import java.util.Map.Entry; import java.util.regex.Pattern; +import org.apache.http.client.methods.CloseableHttpResponse; import org.esigate.Driver; import org.esigate.DriverFactory; import org.esigate.HttpErrorPage; import org.esigate.Parameters; import org.esigate.Renderer; +import org.esigate.http.HttpResponseUtils; import org.esigate.impl.DriverRequest; import org.esigate.parser.Adapter; import org.esigate.parser.ElementType; @@ -206,8 +208,9 @@ } else if (xslt != null) { rendererList.add(new XsltRenderer(xslt, driver, httpRequest)); } - driver.render(page, null, outAdapter, httpRequest.getOriginalRequest(), + CloseableHttpResponse response = driver.render(page, null, httpRequest.getOriginalRequest(), rendererList.toArray(new Renderer[rendererList.size()])); + outAdapter.append(HttpResponseUtils.toString(response)); } } Modified: trunk/esigate-core/src/main/java/org/esigate/extension/parallelesi/IncludeElement.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/extension/parallelesi/IncludeElement.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/main/java/org/esigate/extension/parallelesi/IncludeElement.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -29,11 +29,13 @@ import java.util.regex.Pattern; import org.apache.commons.io.output.StringBuilderWriter; +import org.apache.http.client.methods.CloseableHttpResponse; import org.esigate.Driver; import org.esigate.DriverFactory; import org.esigate.HttpErrorPage; import org.esigate.Parameters; import org.esigate.Renderer; +import org.esigate.http.HttpResponseUtils; import org.esigate.impl.DriverRequest; import org.esigate.parser.future.CharSequenceFuture; import org.esigate.parser.future.FutureElement; @@ -210,8 +212,9 @@ } else if (xslt != null) { rendererList.add(new XsltRenderer(xslt, driver, httpRequest)); } - driver.render(page, null, out, httpRequest.getOriginalRequest(), + CloseableHttpResponse response = driver.render(page, null, httpRequest.getOriginalRequest(), rendererList.toArray(new Renderer[rendererList.size()])); + out.append(HttpResponseUtils.toString(response)); } } Modified: trunk/esigate-core/src/main/java/org/esigate/http/HttpResponseUtils.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/http/HttpResponseUtils.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/main/java/org/esigate/http/HttpResponseUtils.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -27,6 +27,7 @@ import org.apache.http.HttpStatus; import org.apache.http.client.entity.DeflateDecompressingEntity; import org.apache.http.client.entity.GzipDecompressingEntity; +import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.cookie.Cookie; import org.apache.http.cookie.CookieOrigin; import org.apache.http.cookie.CookieSpec; @@ -206,4 +207,16 @@ return removeSessionId(result, httpResponse); } + public static ContentType getContentType(CloseableHttpResponse response) { + HttpEntity entity = response.getEntity(); + if (entity == null) { + return null; + } + return ContentType.get(entity); + } + + public static String toString(CloseableHttpResponse response) throws HttpErrorPage { + return toString(response, null); + } + } Modified: trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/main/java/org/esigate/servlet/HttpServletMediator.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -178,7 +178,6 @@ return servletCookie; } - @Override public void sendResponse(HttpResponse httpResponse) throws IOException { try { Modified: trunk/esigate-core/src/main/java/org/esigate/servlet/ProxyFilter.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/servlet/ProxyFilter.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/main/java/org/esigate/servlet/ProxyFilter.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -26,6 +26,7 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.tuple.Pair; +import org.apache.http.client.methods.CloseableHttpResponse; import org.esigate.Driver; import org.esigate.DriverFactory; import org.esigate.HttpErrorPage; @@ -59,7 +60,8 @@ dm = driverSelector.selectProvider(httpServletRequest, false); String relUrl = RequestUrl.getRelativeUrl(httpServletRequest, dm.getRight(), false); LOG.debug("Proxying {}", relUrl); - dm.getLeft().proxy(relUrl, mediator.getHttpRequest()); + CloseableHttpResponse driverResponse = dm.getLeft().proxy(relUrl, mediator.getHttpRequest()); + mediator.sendResponse(driverResponse); } catch (HttpErrorPage e) { if (!httpServletResponse.isCommitted()) { mediator.sendResponse(e.getHttpResponse()); Modified: trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/main/java/org/esigate/test/MockMediator.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -81,7 +81,6 @@ this.cookies.add(cookie); } - @Override public void sendResponse(HttpResponse response) throws IOException { this.httpResponse = new BasicHttpResponse(response.getStatusLine()); this.httpResponse.setHeaders(response.getAllHeaders()); Modified: trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/main/java/org/esigate/test/TestUtils.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -17,11 +17,9 @@ import java.io.IOException; -import org.apache.http.HttpResponse; import org.apache.http.cookie.Cookie; import org.esigate.Driver; import org.esigate.HttpErrorPage; -import org.esigate.http.HttpResponseUtils; import org.esigate.http.IncomingRequest; import org.esigate.impl.DriverRequest; @@ -53,17 +51,6 @@ return new DriverRequest(request, driver, null, false); } - public static HttpResponse getResponse(IncomingRequest request) { - MockMediator mediator = (MockMediator) request.getMediator(); - return mediator.getHttpResponse(); - } - - public static String getResponseBodyAsString(IncomingRequest request) throws HttpErrorPage { - MockMediator mediator = (MockMediator) request.getMediator(); - HttpResponse response = mediator.getHttpResponse(); - return HttpResponseUtils.toString(response, null); - } - public static void sendHttpErrorPage(HttpErrorPage e, IncomingRequest request) throws IOException { MockMediator mediator = (MockMediator) request.getMediator(); mediator.sendResponse(e.getHttpResponse()); Modified: trunk/esigate-core/src/main/java/org/esigate/test/driver/AbstractDriverTestCase.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/test/driver/AbstractDriverTestCase.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/main/java/org/esigate/test/driver/AbstractDriverTestCase.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -6,6 +6,7 @@ import junit.framework.TestCase; import org.apache.http.HttpResponse; +import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.conn.HttpClientConnectionManager; import org.esigate.Driver; import org.esigate.DriverFactory; @@ -13,7 +14,6 @@ import org.esigate.Renderer; import org.esigate.http.HttpClientRequestExecutor; import org.esigate.http.IncomingRequest; -import org.esigate.test.TestUtils; import org.esigate.test.conn.IResponseHandler; import org.esigate.test.conn.MockConnectionManager; import org.esigate.test.http.HttpRequestBuilder; @@ -118,15 +118,10 @@ * @throws IOException * @throws HttpErrorPage */ - public static HttpResponse driverProxy(Driver d, IncomingRequest request, Renderer... renderers) + public static CloseableHttpResponse driverProxy(Driver d, IncomingRequest request, Renderer... renderers) throws IOException, HttpErrorPage { String uri = request.getRequestLine().getUri(); - d.proxy(UriUtils.getPath(uri), request, renderers); - - return TestUtils.getResponse(request); - - // This is work in progress. Commenting right now. - // return d.proxy(new URI(uri).getPath(), request); + return d.proxy(UriUtils.getPath(uri), request, renderers); } } Modified: trunk/esigate-core/src/main/java/org/esigate/xml/XsltRenderer.java =================================================================== --- trunk/esigate-core/src/main/java/org/esigate/xml/XsltRenderer.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/main/java/org/esigate/xml/XsltRenderer.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -34,9 +34,11 @@ import nu.validator.htmlparser.dom.HtmlDocumentBuilder; import org.apache.commons.io.IOUtils; +import org.apache.http.client.methods.CloseableHttpResponse; import org.esigate.Driver; import org.esigate.HttpErrorPage; import org.esigate.Renderer; +import org.esigate.http.HttpResponseUtils; import org.esigate.impl.DriverRequest; import org.w3c.dom.Document; import org.xml.sax.InputSource; @@ -68,7 +70,8 @@ public XsltRenderer(String template, Driver driver, DriverRequest originalRequest) throws IOException, HttpErrorPage { StringBuilder templateStringBuilder = new StringBuilder(); - driver.render(template, null, templateStringBuilder, originalRequest.getOriginalRequest()); + CloseableHttpResponse response = driver.render(template, null, originalRequest.getOriginalRequest()); + templateStringBuilder.append(HttpResponseUtils.toString(response)); transformer = createTransformer(IOUtils.toInputStream(templateStringBuilder)); } Modified: trunk/esigate-core/src/test/java/org/esigate/DriverTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/DriverTest.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/test/java/org/esigate/DriverTest.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -18,7 +18,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; -import java.io.Writer; import java.net.SocketTimeoutException; import java.util.Date; import java.util.HashMap; @@ -28,12 +27,12 @@ import junit.framework.Assert; import junit.framework.TestCase; -import org.apache.commons.io.output.StringBuilderWriter; import org.apache.http.HttpEntity; import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.ProtocolVersion; +import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.conn.HttpClientConnectionManager; import org.apache.http.entity.ByteArrayEntity; import org.apache.http.entity.ContentType; @@ -48,6 +47,7 @@ import org.esigate.extension.DefaultCharset; import org.esigate.http.DateUtils; import org.esigate.http.HttpClientRequestExecutor; +import org.esigate.http.HttpResponseUtils; import org.esigate.http.IncomingRequest; import org.esigate.tags.BlockRenderer; import org.esigate.tags.TemplateRenderer; @@ -76,47 +76,42 @@ } public void testRenderBlock() throws IOException, HttpErrorPage { - Writer out = new StringBuilderWriter(); - DriverFactory.getInstance("mock") - .render("/testBlock", null, out, request, new BlockRenderer("A", "/testBlock")); + CloseableHttpResponse response = DriverFactory.getInstance("mock").render("/testBlock", null, request, + new BlockRenderer("A", "/testBlock")); - assertEquals("some text goes here", out.toString()); + assertEquals("some text goes here", HttpResponseUtils.toString(response)); - out = new StringBuilderWriter(); - DriverFactory.getInstance("mock").render("$(vartestBlock)", null, out, request, + response = DriverFactory.getInstance("mock").render("$(vartestBlock)", null, request, new BlockRenderer("A", "$(vartestBlock)")); - assertEquals("some text goes here", out.toString()); + assertEquals("some text goes here", HttpResponseUtils.toString(response)); - out = new StringBuilderWriter(); - DriverFactory.getInstance("mock").render("/$(vartest)$(varBlock)", null, out, request, + response = DriverFactory.getInstance("mock").render("/$(vartest)$(varBlock)", null, request, new BlockRenderer("A", "/$(vartest)$(varBlock)")); - assertEquals("some text goes here", out.toString()); + assertEquals("some text goes here", HttpResponseUtils.toString(response)); } public void testRenderTemplateFullPage() throws IOException, HttpErrorPage { - StringBuilderWriter out = new StringBuilderWriter(); HashMap<String, String> params = new HashMap<String, String>(); params.put("key", "'value'"); params.put("some other key", "'another value'"); - DriverFactory.getInstance("mock").render("/testTemplateFullPage", null, out, request, - new TemplateRenderer(null, params, "/testTemplateFullPage")); - assertFalse(out.toString().contains("key")); - assertTrue(out.toString().contains("'value'")); - assertFalse(out.toString().contains("some other key")); - assertEquals("some 'value' printed", out.toString()); + CloseableHttpResponse response = DriverFactory.getInstance("mock").render("/testTemplateFullPage", null, + request, new TemplateRenderer(null, params, "/testTemplateFullPage")); + String result = HttpResponseUtils.toString(response); + assertFalse(result.contains("key")); + assertTrue(result.contains("'value'")); + assertFalse(result.contains("some other key")); + assertEquals("some 'value' printed", result); } public void testRenderTemplate() throws IOException, HttpErrorPage { - StringBuilderWriter out = new StringBuilderWriter(); - DriverFactory.getInstance("mock").render("/testTemplate", null, out, request, + CloseableHttpResponse response = DriverFactory.getInstance("mock").render("/testTemplate", null, request, new TemplateRenderer("A", null, "/testTemplate")); - assertEquals("some text goes here", out.toString()); + assertEquals("some text goes here", HttpResponseUtils.toString(response)); - out = new StringBuilderWriter(); - DriverFactory.getInstance("mock").render("/test$(varTemplate)", null, out, request, + response = DriverFactory.getInstance("mock").render("/test$(varTemplate)", null, request, new TemplateRenderer("A", null, "/test$(varTemplate)")); - assertEquals("some text goes here", out.toString()); + assertEquals("some text goes here", HttpResponseUtils.toString(response)); } @@ -131,15 +126,15 @@ response.setEntity(httpEntity); mockConnectionManager.setResponse(response); Driver driver = createMockDriver(properties, mockConnectionManager); + CloseableHttpResponse driverResponse; try { - driver.proxy("/", request); + driverResponse = driver.proxy("/", request); fail("We should get an HttpErrorPage"); } catch (HttpErrorPage e) { - TestUtils.sendHttpErrorPage(e, request); + driverResponse = e.getHttpResponse(); } - assertEquals("Status code", HttpStatus.SC_INTERNAL_SERVER_ERROR, TestUtils.getResponse(request).getStatusLine() - .getStatusCode()); - assertTrue("Header 'Dummy'", TestUtils.getResponse(request).containsHeader("Dummy")); + assertEquals("Status code", HttpStatus.SC_INTERNAL_SERVER_ERROR, driverResponse.getStatusLine().getStatusCode()); + assertTrue("Header 'Dummy'", driverResponse.containsHeader("Dummy")); } public void testHeadersFilteredWhenError500() throws Exception { @@ -153,15 +148,15 @@ response.setEntity(httpEntity); mockConnectionManager.setResponse(response); Driver driver = createMockDriver(properties, mockConnectionManager); + CloseableHttpResponse driverResponse; try { - driver.proxy("/", request); + driverResponse = driver.proxy("/", request); fail("We should get an HttpErrorPage"); } catch (HttpErrorPage e) { - TestUtils.sendHttpErrorPage(e, request); + driverResponse = e.getHttpResponse(); } - assertEquals("Status code", HttpStatus.SC_INTERNAL_SERVER_ERROR, TestUtils.getResponse(request).getStatusLine() - .getStatusCode()); - assertFalse("Header 'Transfer-Encoding'", TestUtils.getResponse(request).containsHeader("Transfer-Encoding")); + assertEquals("Status code", HttpStatus.SC_INTERNAL_SERVER_ERROR, driverResponse.getStatusLine().getStatusCode()); + assertFalse("Header 'Transfer-Encoding'", driverResponse.containsHeader("Transfer-Encoding")); } public void testSpecialCharacterInErrorPage() throws Exception { @@ -174,13 +169,14 @@ response.setEntity(httpEntity); mockConnectionManager.setResponse(response); Driver driver = createMockDriver(properties, mockConnectionManager); + CloseableHttpResponse driverResponse; try { - driver.proxy("/", request); + driverResponse = driver.proxy("/", request); fail("We should get an HttpErrorPage"); } catch (HttpErrorPage e) { - TestUtils.sendHttpErrorPage(e, request); + driverResponse = e.getHttpResponse(); } - assertEquals("é", TestUtils.getResponseBodyAsString(request)); + assertEquals("é", HttpResponseUtils.toString(driverResponse)); } public void testGzipErrorPage() throws Exception { @@ -202,13 +198,14 @@ response.setEntity(httpEntity); mockConnectionManager.setResponse(response); Driver driver = createMockDriver(properties, mockConnectionManager); + CloseableHttpResponse driverResponse; try { - driver.proxy("/", request); + driverResponse = driver.proxy("/", request); fail("We should get an HttpErrorPage"); } catch (HttpErrorPage e) { - TestUtils.sendHttpErrorPage(e, request); + driverResponse = e.getHttpResponse(); } - assertEquals("é", TestUtils.getResponseBodyAsString(request)); + assertEquals("é", HttpResponseUtils.toString(driverResponse)); } private Driver createMockDriver(Properties properties, HttpClientConnectionManager connectionManager) { @@ -232,9 +229,8 @@ response.addHeader("Location", "http://www.foo.com:8080/somewhere/"); mockConnectionManager.setResponse(response); Driver driver = createMockDriver(properties, mockConnectionManager); - driver.proxy("/foo/", request); - assertEquals("http://www.bar.com/somewhere/", TestUtils.getResponse(request).getFirstHeader("Location") - .getValue()); + CloseableHttpResponse driverResponse = driver.proxy("/foo/", request); + assertEquals("http://www.bar.com/somewhere/", driverResponse.getFirstHeader("Location").getValue()); } /** @@ -266,11 +262,10 @@ // HttpClientHelper will use the Host // header to rewrite the request sent to the backend // http://www.foo.com/foo - driver.proxy("/foo", request); + CloseableHttpResponse driverResponse = driver.proxy("/foo", request); // The test initially failed with an invalid Location: // http://www.foo.com:80:80/foo/bar - assertEquals("http://www.foo.com:80/foo/bar", TestUtils.getResponse(request).getFirstHeader("Location") - .getValue()); + assertEquals("http://www.foo.com:80/foo/bar", driverResponse.getFirstHeader("Location").getValue()); } /** @@ -299,8 +294,8 @@ IncomingRequest request1 = new HttpRequestBuilder().mockMediator().uri("http://www.foo.com:80").build(); assertEquals("www.foo.com", request1.getLastHeader("Host").getValue()); - driver.proxy("", request1); - assertEquals("http://www.foo.com", TestUtils.getResponse(request1).getFirstHeader("Location").getValue()); + CloseableHttpResponse driverResponse = driver.proxy("", request1); + assertEquals("http://www.foo.com", driverResponse.getFirstHeader("Location").getValue()); } /** @@ -335,8 +330,8 @@ request.addHeader("Accept", "text/html,application/xhtml+xml,application/xml"); request.addHeader("If-Modified-Since", "Fri, 15 Jun 2012 21:06:25 GMT"); request.addHeader("Cache-Control", "max-age=0"); - driver.proxy("/foo/", request); - assertEquals(HttpStatus.SC_NOT_MODIFIED, TestUtils.getResponse(request).getStatusLine().getStatusCode()); + CloseableHttpResponse driverResponse = driver.proxy("/foo/", request); + assertEquals(HttpStatus.SC_NOT_MODIFIED, driverResponse.getStatusLine().getStatusCode()); // Second request request = TestUtils.createRequest("http://www.bar.com/foo/"); @@ -345,8 +340,8 @@ request.addHeader("If-Modified-Since", "Fri, 15 Jun 2012 21:06:25 GMT"); request.addHeader("Cache-Control", "max-age=0"); - driver.proxy("/foo/", request); - assertEquals(HttpStatus.SC_NOT_MODIFIED, TestUtils.getResponse(request).getStatusLine().getStatusCode()); + driverResponse = driver.proxy("/foo/", request); + assertEquals(HttpStatus.SC_NOT_MODIFIED, driverResponse.getStatusLine().getStatusCode()); } /** @@ -380,8 +375,8 @@ // First request request = TestUtils.createRequest("http://www.bar142-2.com/foobar142-2/"); request.addHeader("If-None-Match", "a86ecd6cc6d361776ed05f063921aa34"); - driver.proxy("/foobar142-2/", request); - assertEquals(HttpStatus.SC_NOT_MODIFIED, TestUtils.getResponse(request).getStatusLine().getStatusCode()); + CloseableHttpResponse driverResponse = driver.proxy("/foobar142-2/", request); + assertEquals(HttpStatus.SC_NOT_MODIFIED, driverResponse.getStatusLine().getStatusCode()); } /** @@ -420,8 +415,8 @@ request.addHeader("Accept", "text/html,application/xhtml+xml,application/xml"); request.addHeader("Cache-Control", "max-age=0"); request.addHeader("Accept-Encoding", "gzip, deflate"); - driver.proxy("/foobar142-2/", request); - assertEquals(HttpStatus.SC_NOT_MODIFIED, TestUtils.getResponse(request).getStatusLine().getStatusCode()); + CloseableHttpResponse driverResponse = driver.proxy("/foobar142-2/", request); + assertEquals(HttpStatus.SC_NOT_MODIFIED, driverResponse.getStatusLine().getStatusCode()); response = new BasicHttpResponse(new ProtocolVersion("HTTP", 1, 1), HttpStatus.SC_OK, "Ok"); response.addHeader("Etag", "a86ecd6cc6d361776ed05f063921aa34"); @@ -438,9 +433,9 @@ request.addHeader("Accept", "text/html,application/xhtml+xml,application/xml"); request.addHeader("Cache-Control", "max-age=0"); request.addHeader("Accept-Encoding", "gzip, deflate"); - driver.proxy("/foobar142-2/", request); - assertEquals(HttpStatus.SC_OK, TestUtils.getResponse(request).getStatusLine().getStatusCode()); - assertNotNull(TestUtils.getResponse(request).getEntity()); + driverResponse = driver.proxy("/foobar142-2/", request); + assertEquals(HttpStatus.SC_OK, driverResponse.getStatusLine().getStatusCode()); + assertNotNull(driverResponse.getEntity()); } /** @@ -537,10 +532,9 @@ // Request request = TestUtils.createRequest("http://www.bar142-2.com/foobar142-2/"); - driver.proxy("/foobar142-2/", request); - assertEquals(HttpStatus.SC_OK, TestUtils.getResponse(request).getStatusLine().getStatusCode()); - assertEquals("text/html; charset=ISO-8859-1", - TestUtils.getResponse(request).getHeaders("Content-Type")[0].getValue()); + CloseableHttpResponse driverResponse = driver.proxy("/foobar142-2/", request); + assertEquals(HttpStatus.SC_OK, driverResponse.getStatusLine().getStatusCode()); + assertEquals("text/html; charset=ISO-8859-1", driverResponse.getHeaders("Content-Type")[0].getValue()); // Same test with cache enabled properties.put(Parameters.USE_CACHE.getName(), "true"); @@ -552,10 +546,9 @@ // Request request = TestUtils.createRequest("http://www.bar142-2.com/foobar142-2/"); - driver.proxy("/foobar142-2/", request); - assertEquals(HttpStatus.SC_OK, TestUtils.getResponse(request).getStatusLine().getStatusCode()); - assertEquals("text/html; charset=ISO-8859-1", - TestUtils.getResponse(request).getHeaders("Content-Type")[0].getValue()); + driverResponse = driver.proxy("/foobar142-2/", request); + assertEquals(HttpStatus.SC_OK, driverResponse.getStatusLine().getStatusCode()); + assertEquals("text/html; charset=ISO-8859-1", driverResponse.getHeaders("Content-Type")[0].getValue()); } /** @@ -591,8 +584,8 @@ createMockDriver(properties, mockConnectionManager, "provider"); // Do the include and check the result - driver.proxy("/", request, new EsiRenderer()); - assertEquals("àéà", TestUtils.getResponseBodyAsString(request)); + CloseableHttpResponse driverResponse = driver.proxy("/", request, new EsiRenderer()); + assertEquals("àéà", HttpResponseUtils.toString(driverResponse)); } /** Modified: trunk/esigate-core/src/test/java/org/esigate/vars/DriverEsiVariablesTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/vars/DriverEsiVariablesTest.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/test/java/org/esigate/vars/DriverEsiVariablesTest.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -22,6 +22,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; +import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.util.EntityUtils; @@ -31,7 +32,6 @@ import org.esigate.Parameters; import org.esigate.esi.EsiRenderer; import org.esigate.http.IncomingRequest; -import org.esigate.test.TestUtils; import org.esigate.test.conn.IResponseHandler; import org.esigate.test.driver.AbstractDriverTestCase; import org.junit.Test; @@ -130,9 +130,8 @@ // Build driver and request. Driver driver = createMockDriver(properties, mockExecutor); - driverProxy(driver, request, new EsiRenderer()); + CloseableHttpResponse response = driverProxy(driver, request, new EsiRenderer()); - HttpResponse response = TestUtils.getResponse(request); String entityContent = EntityUtils.toString(response.getEntity()); LOG.info("Esigate response: \n" + entityContent); @@ -206,9 +205,8 @@ // Build driver and request. Driver driver = createMockDriver(properties, mockExecutor); - driverProxy(driver, request, new EsiRenderer()); + CloseableHttpResponse response = driverProxy(driver, request, new EsiRenderer()); - HttpResponse response = TestUtils.getResponse(request); String entityContent = EntityUtils.toString(response.getEntity()); LOG.info("Esigate response: \n" + entityContent); Modified: trunk/esigate-core/src/test/java/org/esigate/vars/DriverEsiWhenTest.java =================================================================== --- trunk/esigate-core/src/test/java/org/esigate/vars/DriverEsiWhenTest.java 2014-01-08 15:31:29 UTC (rev 1524) +++ trunk/esigate-core/src/test/java/org/esigate/vars/DriverEsiWhenTest.java 2014-01-08 16:52:41 UTC (rev 1525) @@ -22,6 +22,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; +import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.util.EntityUtils; @@ -30,7 +31,6 @@ import org.esigate.Parameters; import org.esigate.esi.EsiRenderer; import org.esigate.http.IncomingRequest; -import org.esigate.test.TestUtils; import org.esigate.test.conn.IResponseHandler; import org.esigate.test.driver.AbstractDriverTestCase; import org.junit.Test; @@ -118,9 +118,8 @@ // Build driver and request. Driver driver = createMockDriver(properties, mockExecutor); - driverProxy(driver, request, new EsiRenderer()); + CloseableHttpResponse response = driverProxy(driver, request, new EsiRenderer()); - HttpResponse response = TestUtils.getResponse(request); String entityContent = EntityUtils.toString(response.getEntity()); LOG.info("Esigate response: \n" + entityContent); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |