From 489dc87a5d5972d44824472b51eb7f53d9c6d564 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 26 Jun 2015 15:07:45 +0200 Subject: [PATCH] Removes `beforeTileRender` and `afterTileRender` triggers - use version `~0.45.0` to keep them --- NEWS.md | 5 ++++- README.md | 12 +----------- doc/metrics.md | 2 -- lib/windshaft/backends/map.js | 14 +------------- lib/windshaft/server.js | 16 ---------------- test/acceptance/server_gettile.js | 15 --------------- test/support/server_options.js | 9 --------- 7 files changed, 6 insertions(+), 67 deletions(-) diff --git a/NEWS.md b/NEWS.md index 3db14980e..0c4a0113d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,9 @@ -# Version 0.45.1 +# Version 0.46.0 2015-mm-dd +Announcements: + - Removes `beforeTileRender` and `afterTileRender` triggers, use version `~0.45.0` to keep them + Enhancements: - Checks for ETIMEDOUT error code so timeouts do not turn into empty image in http layers (#360) diff --git a/README.md b/README.md index abc9dc27f..a01c67d1c 100644 --- a/README.md +++ b/README.md @@ -88,9 +88,6 @@ var Windshaft = require('windshaft'); // GET base_url + '/style' (returns a map style) // POST base_url + '/style' (allows specifying of a style in Carto markup // in the 'style' form variable). -// -// beforeTileRender and afterTileRender could be defined if you want yo -// implement your own tile cache policy. See an example below var config = { base_url: '/database/:dbname/table/:table', @@ -111,14 +108,7 @@ var config = { metatile: 4, bufferSize:64 }, - redis: {host: '127.0.0.1', port: 6379}, - // this two filters are optional - beforeTileRender: function(req, res, callback) { - callback(null); - }, - afterTileRender: function(req, res, tile, headers, callback) { - callback(null, tile, headers); - } + redis: {host: '127.0.0.1', port: 6379} }; // Initialize tile server on port 4000 diff --git a/doc/metrics.md b/doc/metrics.md index a5b9a1382..40eec24ad 100644 --- a/doc/metrics.md +++ b/doc/metrics.md @@ -30,8 +30,6 @@ Again, each inner timer may have several inner timers, some of them are displaye + mapSave + req2params - **getTileOrGrid**: time to retrieve a tile or grid - + afterTileRender - + beforeTileRender + getRenderer + makeRenderer-*{format}* \* + render-*{format}* \* diff --git a/lib/windshaft/backends/map.js b/lib/windshaft/backends/map.js index 43b7f6fcc..48c9c2581 100644 --- a/lib/windshaft/backends/map.js +++ b/lib/windshaft/backends/map.js @@ -25,9 +25,6 @@ module.exports = MapBackend; // * interactivity - specify which columns to represent in the UTFGrid // * cache_buster - specify to ensure a new renderer is used // * geom_type - specify default style to use if no style present -// -// Triggers beforeTileRender and afterTileRender render filters -// MapBackend.prototype.getTileOrGrid = function(req, res, callback){ var self = this; @@ -38,11 +35,6 @@ MapBackend.prototype.getTileOrGrid = function(req, res, callback){ step( function() { - self._app.beforeTileRender(req, res, this); - }, - function(err){ - req.profiler.done('beforeTileRender'); - assert.ifError(err); if (req.params.format === 'grid.json' && !req.params.interactivity) { if ( ! req.params.token ) { // token embeds interactivity throw new Error("Missing interactivity parameter"); @@ -63,11 +55,7 @@ MapBackend.prototype.getTileOrGrid = function(req, res, callback){ function(err, tile, headers, stats) { req.profiler.done('render-'+req.params.format.replace('.','-')); req.profiler.add(stats || {}); - assert.ifError(err); - self._app.afterTileRender(req, res, tile, headers || {}, this); - }, - function(err, tile, headers) { - req.profiler.done('afterTileRender'); + if ( renderer ) { renderer.release(); req.profiler.done('renderer_release'); diff --git a/lib/windshaft/server.js b/lib/windshaft/server.js index 450817ec4..e0f73b059 100644 --- a/lib/windshaft/server.js +++ b/lib/windshaft/server.js @@ -70,13 +70,6 @@ var WELCOME_MSG = "This is the CartoDB Maps API, " + // // or 'pool', for a pre-configured pooler // // with interface of node-redis-mpool // }, -// // this two filters are optional -// beforeTileRender: function(req, res, callback) { -// callback(null); -// }, -// afterTileRender: function(req, res, tile, headers, callback) { -// callback(null, tile, headers); -// }, // https: { // key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), // cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem') @@ -445,15 +438,6 @@ function addFilters(app, opts) { // filters can be used for custom authentication, caching, logging etc _.defaults(app, { - // called pre tile render right at the start of the call - beforeTileRender: function(req, res, callback) { - callback(null); - }, - // called immediately after the tile render. Called with tile output - afterTileRender: function(req, res, tile, headers, callback) { - callback(null, tile, headers); - }, - // called before a layergroup configuration is created // it allows to modify the configuration // @param req request (body is the map configuration) diff --git a/test/acceptance/server_gettile.js b/test/acceptance/server_gettile.js index afaa26eef..3320a6bf1 100644 --- a/test/acceptance/server_gettile.js +++ b/test/acceptance/server_gettile.js @@ -202,21 +202,6 @@ describe('server_gettile', function() { it(test_strict_lbl, test_strictness); } - it("beforeTileRender is called when the client request a tile", function(done) { - testClient.getTile(testClient.defaultTableMapConfig('test_table'), 6, 31, 24, function(err, res) { - assert.equal(res.headers['x-beforetilerender'], 'called'); - done(); - }); - }); - - it("afterTileRender is called when the client request a tile", function(done) { - testClient.getTile(testClient.defaultTableMapConfig('test_table'), 6, 31, 24, function(err, res) { - assert.equal(res.headers['x-aftertilerender'], 'called'); - assert.equal(res.headers['x-aftertilerender2'], 'called'); - done(); - }); - }); - it('high cpu regression with mapnik <2.3.x', function(done) { var sql = [ "SELECT 'my polygon name here' AS name,", diff --git a/test/support/server_options.js b/test/support/server_options.js index c8d9c4889..11cd50791 100644 --- a/test/support/server_options.js +++ b/test/support/server_options.js @@ -35,15 +35,6 @@ module.exports = (function(opts) { // send the finished req object on callback(null,req); }, - beforeTileRender: function(req, res, callback) { - res.header('X-BeforeTileRender', 'called'); - callback(null); - }, - afterTileRender: function(req, res, tile, headers, callback) { - res.header('X-AfterTileRender','called'); - headers['X-AfterTileRender2'] = 'called'; - callback(null, tile, headers); - }, afterLayergroupCreate: function(req, cfg, res, callback) { res.layercount = cfg.layers.length; this.afterLayergroupCreateCalls = this.afterLayergroupCreateCalls ? this.afterLayergroupCreateCalls + 1 : 1;