http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/assets/js/npm.js
----------------------------------------------------------------------
diff --git a/assets/js/npm.js b/assets/js/npm.js
new file mode 100644
index 0000000..bf6aa80
--- /dev/null
+++ b/assets/js/npm.js
@@ -0,0 +1,13 @@
+// This file is autogenerated via the `commonjs` Grunt task. You can require() 
this file in a CommonJS environment.
+require('../../js/transition.js')
+require('../../js/alert.js')
+require('../../js/button.js')
+require('../../js/carousel.js')
+require('../../js/collapse.js')
+require('../../js/dropdown.js')
+require('../../js/modal.js')
+require('../../js/tooltip.js')
+require('../../js/popover.js')
+require('../../js/scrollspy.js')
+require('../../js/tab.js')
+require('../../js/affix.js')
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/assets/js/owl.carousel.min.js
----------------------------------------------------------------------
diff --git a/assets/js/owl.carousel.min.js b/assets/js/owl.carousel.min.js
new file mode 100644
index 0000000..394505e
--- /dev/null
+++ b/assets/js/owl.carousel.min.js
@@ -0,0 +1,47 @@
+"function"!==typeof Object.create&&(Object.create=function(f){function 
g(){}g.prototype=f;return new g});
+(function(f,g,k){var 
l={init:function(a,b){this.$elem=f(b);this.options=f.extend({},f.fn.owlCarousel.options,this.$elem.data(),a);this.userOptions=a;this.loadContent()},loadContent:function(){function
 a(a){var d,e="";if("function"===typeof 
b.options.jsonSuccess)b.options.jsonSuccess.apply(this,[a]);else{for(d in 
a.owl)a.owl.hasOwnProperty(d)&&(e+=a.owl[d].item);b.$elem.html(e)}b.logIn()}var 
b=this,e;"function"===typeof 
b.options.beforeInit&&b.options.beforeInit.apply(this,[b.$elem]);"string"===typeof
 b.options.jsonPath?
+(e=b.options.jsonPath,f.getJSON(e,a)):b.logIn()},logIn:function(){this.$elem.data("owl-originalStyles",this.$elem.attr("style"));this.$elem.data("owl-originalClasses",this.$elem.attr("class"));this.$elem.css({opacity:0});this.orignalItems=this.options.items;this.checkBrowser();this.wrapperWidth=0;this.checkVisible=null;this.setVars()},setVars:function(){if(0===this.$elem.children().length)return!1;this.baseClass();this.eventTypes();this.$userItems=this.$elem.children();this.itemsAmount=this.$userItems.length;
+this.wrapItems();this.$owlItems=this.$elem.find(".owl-item");this.$owlWrapper=this.$elem.find(".owl-wrapper");this.playDirection="next";this.prevItem=0;this.prevArr=[0];this.currentItem=0;this.customEvents();this.onStartup()},onStartup:function(){this.updateItems();this.calculateAll();this.buildControls();this.updateControls();this.response();this.moveEvents();this.stopOnHover();this.owlStatus();!1!==this.options.transitionStyle&&this.transitionTypes(this.options.transitionStyle);!0===this.options.autoPlay&&
+(this.options.autoPlay=5E3);this.play();this.$elem.find(".owl-wrapper").css("display","block");this.$elem.is(":visible")?this.$elem.css("opacity",1):this.watchVisibility();this.onstartup=!1;this.eachMoveUpdate();"function"===typeof
 
this.options.afterInit&&this.options.afterInit.apply(this,[this.$elem])},eachMoveUpdate:function(){!0===this.options.lazyLoad&&this.lazyLoad();!0===this.options.autoHeight&&this.autoHeight();this.onVisibleItems();"function"===typeof
 this.options.afterAction&&this.options.afterAction.apply(this,
+[this.$elem])},updateVars:function(){"function"===typeof 
this.options.beforeUpdate&&this.options.beforeUpdate.apply(this,[this.$elem]);this.watchVisibility();this.updateItems();this.calculateAll();this.updatePosition();this.updateControls();this.eachMoveUpdate();"function"===typeof
 
this.options.afterUpdate&&this.options.afterUpdate.apply(this,[this.$elem])},reload:function(){var
 
a=this;g.setTimeout(function(){a.updateVars()},0)},watchVisibility:function(){var
 a=this;if(!1===a.$elem.is(":visible"))a.$elem.css({opacity:0}),
+g.clearInterval(a.autoPlayInterval),g.clearInterval(a.checkVisible);else 
return!1;a.checkVisible=g.setInterval(function(){a.$elem.is(":visible")&&(a.reload(),a.$elem.animate({opacity:1},200),g.clearInterval(a.checkVisible))},500)},wrapItems:function(){this.$userItems.wrapAll('<div
 class="owl-wrapper">').wrap('<div 
class="owl-item"></div>');this.$elem.find(".owl-wrapper").wrap('<div 
class="owl-wrapper-outer">');this.wrapperOuter=this.$elem.find(".owl-wrapper-outer");this.$elem.css("display","block")},
+baseClass:function(){var 
a=this.$elem.hasClass(this.options.baseClass),b=this.$elem.hasClass(this.options.theme);a||this.$elem.addClass(this.options.baseClass);b||this.$elem.addClass(this.options.theme)},updateItems:function(){var
 
a,b;if(!1===this.options.responsive)return!1;if(!0===this.options.singleItem)return
 
this.options.items=this.orignalItems=1,this.options.itemsCustom=!1,this.options.itemsDesktop=!1,this.options.itemsDesktopSmall=!1,this.options.itemsTablet=!1,this.options.itemsTabletSmall=
+!1,this.options.itemsMobile=!1;a=f(this.options.responsiveBaseWidth).width();a>(this.options.itemsDesktop[0]||this.orignalItems)&&(this.options.items=this.orignalItems);if(!1!==this.options.itemsCustom)for(this.options.itemsCustom.sort(function(a,b){return
 
a[0]-b[0]}),b=0;b<this.options.itemsCustom.length;b+=1)this.options.itemsCustom[b][0]<=a&&(this.options.items=this.options.itemsCustom[b][1]);else
 
a<=this.options.itemsDesktop[0]&&!1!==this.options.itemsDesktop&&(this.options.items=this.options.itemsDesktop[1]),
+a<=this.options.itemsDesktopSmall[0]&&!1!==this.options.itemsDesktopSmall&&(this.options.items=this.options.itemsDesktopSmall[1]),a<=this.options.itemsTablet[0]&&!1!==this.options.itemsTablet&&(this.options.items=this.options.itemsTablet[1]),a<=this.options.itemsTabletSmall[0]&&!1!==this.options.itemsTabletSmall&&(this.options.items=this.options.itemsTabletSmall[1]),a<=this.options.itemsMobile[0]&&!1!==this.options.itemsMobile&&(this.options.items=this.options.itemsMobile[1]);this.options.items>this.itemsAmount&&
+!0===this.options.itemsScaleUp&&(this.options.items=this.itemsAmount)},response:function(){var
 
a=this,b,e;if(!0!==a.options.responsive)return!1;e=f(g).width();a.resizer=function(){f(g).width()!==e&&(!1!==a.options.autoPlay&&g.clearInterval(a.autoPlayInterval),g.clearTimeout(b),b=g.setTimeout(function(){e=f(g).width();a.updateVars()},a.options.responsiveRefreshRate))};f(g).resize(a.resizer)},updatePosition:function(){this.jumpTo(this.currentItem);!1!==this.options.autoPlay&&this.checkAp()},appendItemsSizes:function(){var
 a=
+this,b=0,e=a.itemsAmount-a.options.items;a.$owlItems.each(function(c){var 
d=f(this);d.css({width:a.itemWidth}).data("owl-item",Number(c));if(0===c%a.options.items||c===e)c>e||(b+=1);d.data("owl-roundPages",b)})},appendWrapperSizes:function(){this.$owlWrapper.css({width:this.$owlItems.length*this.itemWidth*2,left:0});this.appendItemsSizes()},calculateAll:function(){this.calculateWidth();this.appendWrapperSizes();this.loops();this.max()},calculateWidth:function(){this.itemWidth=Math.round(this.$elem.width()/
+this.options.items)},max:function(){var 
a=-1*(this.itemsAmount*this.itemWidth-this.options.items*this.itemWidth);this.options.items>this.itemsAmount?this.maximumPixels=a=this.maximumItem=0:(this.maximumItem=this.itemsAmount-this.options.items,this.maximumPixels=a);return
 a},min:function(){return 0},loops:function(){var 
a=0,b=0,e,c;this.positionsInArray=[0];this.pagesInArray=[];for(e=0;e<this.itemsAmount;e+=1)b+=this.itemWidth,this.positionsInArray.push(-b),!0===this.options.scrollPerPage&&(c=f(this.$owlItems[e]),
+c=c.data("owl-roundPages"),c!==a&&(this.pagesInArray[a]=this.positionsInArray[e],a=c))},buildControls:function(){if(!0===this.options.navigation||!0===this.options.pagination)this.owlControls=f('<div
 
class="owl-controls"/>').toggleClass("clickable",!this.browser.isTouch).appendTo(this.$elem);!0===this.options.pagination&&this.buildPagination();!0===this.options.navigation&&this.buildButtons()},buildButtons:function(){var
 a=this,b=f('<div class="owl-buttons"/>');a.owlControls.append(b);a.buttonPrev=
+f("<div/>",{"class":"owl-prev",html:a.options.navigationText[0]||""});a.buttonNext=f("<div/>",{"class":"owl-next",html:a.options.navigationText[1]||""});b.append(a.buttonPrev).append(a.buttonNext);b.on("touchstart.owlControls
 
mousedown.owlControls",'div[class^="owl"]',function(a){a.preventDefault()});b.on("touchend.owlControls
 
mouseup.owlControls",'div[class^="owl"]',function(b){b.preventDefault();f(this).hasClass("owl-next")?a.next():a.prev()})},buildPagination:function(){var
 a=this;a.paginationWrapper=
+f('<div 
class="owl-pagination"/>');a.owlControls.append(a.paginationWrapper);a.paginationWrapper.on("touchend.owlControls
 
mouseup.owlControls",".owl-page",function(b){b.preventDefault();Number(f(this).data("owl-page"))!==a.currentItem&&a.goTo(Number(f(this).data("owl-page")),!0)})},updatePagination:function(){var
 
a,b,e,c,d,g;if(!1===this.options.pagination)return!1;this.paginationWrapper.html("");a=0;b=this.itemsAmount-this.itemsAmount%this.options.items;for(c=0;c<this.itemsAmount;c+=1)0===c%this.options.items&&
+(a+=1,b===c&&(e=this.itemsAmount-this.options.items),d=f("<div/>",{"class":"owl-page"}),g=f("<span></span>",{text:!0===this.options.paginationNumbers?a:"","class":!0===this.options.paginationNumbers?"owl-numbers":""}),d.append(g),d.data("owl-page",b===c?e:c),d.data("owl-roundPages",a),this.paginationWrapper.append(d));this.checkPagination()},checkPagination:function(){var
 
a=this;if(!1===a.options.pagination)return!1;a.paginationWrapper.find(".owl-page").each(function(){f(this).data("owl-roundPages")===
+f(a.$owlItems[a.currentItem]).data("owl-roundPages")&&(a.paginationWrapper.find(".owl-page").removeClass("active"),f(this).addClass("active"))})},checkNavigation:function(){if(!1===this.options.navigation)return!1;!1===this.options.rewindNav&&(0===this.currentItem&&0===this.maximumItem?(this.buttonPrev.addClass("disabled"),this.buttonNext.addClass("disabled")):0===this.currentItem&&0!==this.maximumItem?(this.buttonPrev.addClass("disabled"),this.buttonNext.removeClass("disabled")):this.currentItem===
+this.maximumItem?(this.buttonPrev.removeClass("disabled"),this.buttonNext.addClass("disabled")):0!==this.currentItem&&this.currentItem!==this.maximumItem&&(this.buttonPrev.removeClass("disabled"),this.buttonNext.removeClass("disabled")))},updateControls:function(){this.updatePagination();this.checkNavigation();this.owlControls&&(this.options.items>=this.itemsAmount?this.owlControls.hide():this.owlControls.show())},destroyControls:function(){this.owlControls&&this.owlControls.remove()},next:function(a){if(this.isTransition)return!1;
+this.currentItem+=!0===this.options.scrollPerPage?this.options.items:1;if(this.currentItem>this.maximumItem+(!0===this.options.scrollPerPage?this.options.items-1:0))if(!0===this.options.rewindNav)this.currentItem=0,a="rewind";else
 return 
this.currentItem=this.maximumItem,!1;this.goTo(this.currentItem,a)},prev:function(a){if(this.isTransition)return!1;this.currentItem=!0===this.options.scrollPerPage&&0<this.currentItem&&this.currentItem<this.options.items?0:this.currentItem-(!0===this.options.scrollPerPage?
+this.options.items:1);if(0>this.currentItem)if(!0===this.options.rewindNav)this.currentItem=this.maximumItem,a="rewind";else
 return 
this.currentItem=0,!1;this.goTo(this.currentItem,a)},goTo:function(a,b,e){var 
c=this;if(c.isTransition)return!1;"function"===typeof 
c.options.beforeMove&&c.options.beforeMove.apply(this,[c.$elem]);a>=c.maximumItem?a=c.maximumItem:0>=a&&(a=0);c.currentItem=c.owl.currentItem=a;if(!1!==c.options.transitionStyle&&"drag"!==e&&1===c.options.items&&!0===c.browser.support3d)return
 c.swapSpeed(0),
+!0===c.browser.support3d?c.transition3d(c.positionsInArray[a]):c.css2slide(c.positionsInArray[a],1),c.afterGo(),c.singleItemTransition(),!1;a=c.positionsInArray[a];!0===c.browser.support3d?(c.isCss3Finish=!1,!0===b?(c.swapSpeed("paginationSpeed"),g.setTimeout(function(){c.isCss3Finish=!0},c.options.paginationSpeed)):"rewind"===b?(c.swapSpeed(c.options.rewindSpeed),g.setTimeout(function(){c.isCss3Finish=!0},c.options.rewindSpeed)):(c.swapSpeed("slideSpeed"),g.setTimeout(function(){c.isCss3Finish=!0},
+c.options.slideSpeed)),c.transition3d(a)):!0===b?c.css2slide(a,c.options.paginationSpeed):"rewind"===b?c.css2slide(a,c.options.rewindSpeed):c.css2slide(a,c.options.slideSpeed);c.afterGo()},jumpTo:function(a){"function"===typeof
 
this.options.beforeMove&&this.options.beforeMove.apply(this,[this.$elem]);a>=this.maximumItem||-1===a?a=this.maximumItem:0>=a&&(a=0);this.swapSpeed(0);!0===this.browser.support3d?this.transition3d(this.positionsInArray[a]):this.css2slide(this.positionsInArray[a],1);this.currentItem=
+this.owl.currentItem=a;this.afterGo()},afterGo:function(){this.prevArr.push(this.currentItem);this.prevItem=this.owl.prevItem=this.prevArr[this.prevArr.length-2];this.prevArr.shift(0);this.prevItem!==this.currentItem&&(this.checkPagination(),this.checkNavigation(),this.eachMoveUpdate(),!1!==this.options.autoPlay&&this.checkAp());"function"===typeof
 
this.options.afterMove&&this.prevItem!==this.currentItem&&this.options.afterMove.apply(this,[this.$elem])},stop:function(){this.apStatus="stop";g.clearInterval(this.autoPlayInterval)},
+checkAp:function(){"stop"!==this.apStatus&&this.play()},play:function(){var 
a=this;a.apStatus="play";if(!1===a.options.autoPlay)return!1;g.clearInterval(a.autoPlayInterval);a.autoPlayInterval=g.setInterval(function(){a.next(!0)},a.options.autoPlay)},swapSpeed:function(a){"slideSpeed"===a?this.$owlWrapper.css(this.addCssSpeed(this.options.slideSpeed)):"paginationSpeed"===a?this.$owlWrapper.css(this.addCssSpeed(this.options.paginationSpeed)):"string"!==typeof
 a&&this.$owlWrapper.css(this.addCssSpeed(a))},
+addCssSpeed:function(a){return{"-webkit-transition":"all "+a+"ms 
ease","-moz-transition":"all "+a+"ms ease","-o-transition":"all "+a+"ms 
ease",transition:"all "+a+"ms 
ease"}},removeTransition:function(){return{"-webkit-transition":"","-moz-transition":"","-o-transition":"",transition:""}},doTranslate:function(a){return{"-webkit-transform":"translate3d("+a+"px,
 0px, 0px)","-moz-transform":"translate3d("+a+"px, 0px, 
0px)","-o-transform":"translate3d("+a+"px, 0px, 
0px)","-ms-transform":"translate3d("+
+a+"px, 0px, 0px)",transform:"translate3d("+a+"px, 
0px,0px)"}},transition3d:function(a){this.$owlWrapper.css(this.doTranslate(a))},css2move:function(a){this.$owlWrapper.css({left:a})},css2slide:function(a,b){var
 
e=this;e.isCssFinish=!1;e.$owlWrapper.stop(!0,!0).animate({left:a},{duration:b||e.options.slideSpeed,complete:function(){e.isCssFinish=!0}})},checkBrowser:function(){var
 a=k.createElement("div");a.style.cssText="  -moz-transform:translate3d(0px, 
0px, 0px); -ms-transform:translate3d(0px, 0px, 0px); 
-o-transform:translate3d(0px, 0px, 0px); -webkit-transform:translate3d(0px, 
0px, 0px); transform:translate3d(0px, 0px, 0px)";
+a=a.style.cssText.match(/translate3d\(0px, 0px, 
0px\)/g);this.browser={support3d:null!==a&&1===a.length,isTouch:"ontouchstart"in
 
g||g.navigator.msMaxTouchPoints}},moveEvents:function(){if(!1!==this.options.mouseDrag||!1!==this.options.touchDrag)this.gestures(),this.disabledEvents()},eventTypes:function(){var
 
a=["s","e","x"];this.ev_types={};!0===this.options.mouseDrag&&!0===this.options.touchDrag?a=["touchstart.owl
 mousedown.owl","touchmove.owl mousemove.owl","touchend.owl touchcancel.owl 
mouseup.owl"]:
+!1===this.options.mouseDrag&&!0===this.options.touchDrag?a=["touchstart.owl","touchmove.owl","touchend.owl
 
touchcancel.owl"]:!0===this.options.mouseDrag&&!1===this.options.touchDrag&&(a=["mousedown.owl","mousemove.owl","mouseup.owl"]);this.ev_types.start=a[0];this.ev_types.move=a[1];this.ev_types.end=a[2]},disabledEvents:function(){this.$elem.on("dragstart.owl",function(a){a.preventDefault()});this.$elem.on("mousedown.disableTextSelect",function(a){return
 f(a.target).is("input, textarea, select, option")})},
+gestures:function(){function a(a){if(void 
0!==a.touches)return{x:a.touches[0].pageX,y:a.touches[0].pageY};if(void 
0===a.touches){if(void 0!==a.pageX)return{x:a.pageX,y:a.pageY};if(void 
0===a.pageX)return{x:a.clientX,y:a.clientY}}}function 
b(a){"on"===a?(f(k).on(d.ev_types.move,e),f(k).on(d.ev_types.end,c)):"off"===a&&(f(k).off(d.ev_types.move),f(k).off(d.ev_types.end))}function
 
e(b){b=b.originalEvent||b||g.event;d.newPosX=a(b).x-h.offsetX;d.newPosY=a(b).y-h.offsetY;d.newRelativeX=d.newPosX-h.relativePos;
+"function"===typeof 
d.options.startDragging&&!0!==h.dragging&&0!==d.newRelativeX&&(h.dragging=!0,d.options.startDragging.apply(d,[d.$elem]));(8<d.newRelativeX||-8>d.newRelativeX)&&!0===d.browser.isTouch&&(void
 
0!==b.preventDefault?b.preventDefault():b.returnValue=!1,h.sliding=!0);(10<d.newPosY||-10>d.newPosY)&&!1===h.sliding&&f(k).off("touchmove.owl");d.newPosX=Math.max(Math.min(d.newPosX,d.newRelativeX/5),d.maximumPixels+d.newRelativeX/5);!0===d.browser.support3d?d.transition3d(d.newPosX):d.css2move(d.newPosX)}
+function c(a){a=a.originalEvent||a||g.event;var 
c;a.target=a.target||a.srcElement;h.dragging=!1;!0!==d.browser.isTouch&&d.$owlWrapper.removeClass("grabbing");d.dragDirection=0>d.newRelativeX?d.owl.dragDirection="left":d.owl.dragDirection="right";0!==d.newRelativeX&&(c=d.getNewPosition(),d.goTo(c,!1,"drag"),h.targetElement===a.target&&!0!==d.browser.isTouch&&(f(a.target).on("click.disable",function(a){a.stopImmediatePropagation();a.stopPropagation();a.preventDefault();f(a.target).off("click.disable")}),
+a=f._data(a.target,"events").click,c=a.pop(),a.splice(0,0,c)));b("off")}var 
d=this,h={offsetX:0,offsetY:0,baseElWidth:0,relativePos:0,position:null,minSwipe:null,maxSwipe:null,sliding:null,dargging:null,targetElement:null};d.isCssFinish=!0;d.$elem.on(d.ev_types.start,".owl-wrapper",function(c){c=c.originalEvent||c||g.event;var
 
e;if(3===c.which)return!1;if(!(d.itemsAmount<=d.options.items)){if(!1===d.isCssFinish&&!d.options.dragBeforeAnimFinish||!1===d.isCss3Finish&&!d.options.dragBeforeAnimFinish)return!1;
+!1!==d.options.autoPlay&&g.clearInterval(d.autoPlayInterval);!0===d.browser.isTouch||d.$owlWrapper.hasClass("grabbing")||d.$owlWrapper.addClass("grabbing");d.newPosX=0;d.newRelativeX=0;f(this).css(d.removeTransition());e=f(this).position();h.relativePos=e.left;h.offsetX=a(c).x-e.left;h.offsetY=a(c).y-e.top;b("on");h.sliding=!1;h.targetElement=c.target||c.srcElement}})},getNewPosition:function(){var
 
a=this.closestItem();a>this.maximumItem?a=this.currentItem=this.maximumItem:0<=this.newPosX&&(this.currentItem=
+a=0);return a},closestItem:function(){var 
a=this,b=!0===a.options.scrollPerPage?a.pagesInArray:a.positionsInArray,e=a.newPosX,c=null;f.each(b,function(d,g){e-a.itemWidth/20>b[d+1]&&e-a.itemWidth/20<g&&"left"===a.moveDirection()?(c=g,a.currentItem=!0===a.options.scrollPerPage?f.inArray(c,a.positionsInArray):d):e+a.itemWidth/20<g&&e+a.itemWidth/20>(b[d+1]||b[d]-a.itemWidth)&&"right"===a.moveDirection()&&(!0===a.options.scrollPerPage?(c=b[d+1]||b[b.length-1],a.currentItem=f.inArray(c,a.positionsInArray)):
+(c=b[d+1],a.currentItem=d+1))});return 
a.currentItem},moveDirection:function(){var 
a;0>this.newRelativeX?(a="right",this.playDirection="next"):(a="left",this.playDirection="prev");return
 a},customEvents:function(){var 
a=this;a.$elem.on("owl.next",function(){a.next()});a.$elem.on("owl.prev",function(){a.prev()});a.$elem.on("owl.play",function(b,e){a.options.autoPlay=e;a.play();a.hoverStatus="play"});a.$elem.on("owl.stop",function(){a.stop();a.hoverStatus="stop"});a.$elem.on("owl.goTo",function(b,e){a.goTo(e)});
+a.$elem.on("owl.jumpTo",function(b,e){a.jumpTo(e)})},stopOnHover:function(){var
 
a=this;!0===a.options.stopOnHover&&!0!==a.browser.isTouch&&!1!==a.options.autoPlay&&(a.$elem.on("mouseover",function(){a.stop()}),a.$elem.on("mouseout",function(){"stop"!==a.hoverStatus&&a.play()}))},lazyLoad:function(){var
 
a,b,e,c,d;if(!1===this.options.lazyLoad)return!1;for(a=0;a<this.itemsAmount;a+=1)b=f(this.$owlItems[a]),"loaded"!==b.data("owl-loaded")&&(e=b.data("owl-item"),c=b.find(".lazyOwl"),"string"!==typeof
 c.data("src")?
+b.data("owl-loaded","loaded"):(void 
0===b.data("owl-loaded")&&(c.hide(),b.addClass("loading").data("owl-loaded","checked")),(d=!0===this.options.lazyFollow?e>=this.currentItem:!0)&&e<this.currentItem+this.options.items&&c.length&&this.lazyPreload(b,c)))},lazyPreload:function(a,b){function
 
e(){a.data("owl-loaded","loaded").removeClass("loading");b.removeAttr("data-src");"fade"===d.options.lazyEffect?b.fadeIn(400):b.show();"function"===typeof
 d.options.afterLazyLoad&&d.options.afterLazyLoad.apply(this,
+[d.$elem])}function 
c(){f+=1;d.completeImg(b.get(0))||!0===k?e():100>=f?g.setTimeout(c,100):e()}var 
d=this,f=0,k;"DIV"===b.prop("tagName")?(b.css("background-image","url("+b.data("src")+")"),k=!0):b[0].src=b.data("src");c()},autoHeight:function(){function
 a(){var 
a=f(e.$owlItems[e.currentItem]).height();e.wrapperOuter.css("height",a+"px");e.wrapperOuter.hasClass("autoHeight")||g.setTimeout(function(){e.wrapperOuter.addClass("autoHeight")},0)}function
 b(){d+=1;e.completeImg(c.get(0))?a():100>=d?g.setTimeout(b,
+100):e.wrapperOuter.css("height","")}var 
e=this,c=f(e.$owlItems[e.currentItem]).find("img"),d;void 
0!==c.get(0)?(d=0,b()):a()},completeImg:function(a){return!a.complete||"undefined"!==typeof
 a.naturalWidth&&0===a.naturalWidth?!1:!0},onVisibleItems:function(){var 
a;!0===this.options.addClassActive&&this.$owlItems.removeClass("active");this.visibleItems=[];for(a=this.currentItem;a<this.currentItem+this.options.items;a+=1)this.visibleItems.push(a),!0===this.options.addClassActive&&f(this.$owlItems[a]).addClass("active");
+this.owl.visibleItems=this.visibleItems},transitionTypes:function(a){this.outClass="owl-"+a+"-out";this.inClass="owl-"+a+"-in"},singleItemTransition:function(){var
 
a=this,b=a.outClass,e=a.inClass,c=a.$owlItems.eq(a.currentItem),d=a.$owlItems.eq(a.prevItem),f=Math.abs(a.positionsInArray[a.currentItem])+a.positionsInArray[a.prevItem],g=Math.abs(a.positionsInArray[a.currentItem])+a.itemWidth/2;a.isTransition=!0;a.$owlWrapper.addClass("owl-origin").css({"-webkit-transform-origin":g+"px","-moz-perspective-origin":g+
+"px","perspective-origin":g+"px"});d.css({position:"relative",left:f+"px"}).addClass(b).on("webkitAnimationEnd
 oAnimationEnd MSAnimationEnd 
animationend",function(){a.endPrev=!0;d.off("webkitAnimationEnd oAnimationEnd 
MSAnimationEnd 
animationend");a.clearTransStyle(d,b)});c.addClass(e).on("webkitAnimationEnd 
oAnimationEnd MSAnimationEnd 
animationend",function(){a.endCurrent=!0;c.off("webkitAnimationEnd 
oAnimationEnd MSAnimationEnd 
animationend");a.clearTransStyle(c,e)})},clearTransStyle:function(a,
+b){a.css({position:"",left:""}).removeClass(b);this.endPrev&&this.endCurrent&&(this.$owlWrapper.removeClass("owl-origin"),this.isTransition=this.endCurrent=this.endPrev=!1)},owlStatus:function(){this.owl={userOptions:this.userOptions,baseElement:this.$elem,userItems:this.$userItems,owlItems:this.$owlItems,currentItem:this.currentItem,prevItem:this.prevItem,visibleItems:this.visibleItems,isTouch:this.browser.isTouch,browser:this.browser,dragDirection:this.dragDirection}},clearEvents:function(){this.$elem.off(".owl
 owl mousedown.disableTextSelect");
+f(k).off(".owl 
owl");f(g).off("resize",this.resizer)},unWrap:function(){0!==this.$elem.children().length&&(this.$owlWrapper.unwrap(),this.$userItems.unwrap().unwrap(),this.owlControls&&this.owlControls.remove());this.clearEvents();this.$elem.attr("style",this.$elem.data("owl-originalStyles")||"").attr("class",this.$elem.data("owl-originalClasses"))},destroy:function(){this.stop();g.clearInterval(this.checkVisible);this.unWrap();this.$elem.removeData()},reinit:function(a){a=f.extend({},this.userOptions,
+a);this.unWrap();this.init(a,this.$elem)},addItem:function(a,b){var 
e;if(!a)return!1;if(0===this.$elem.children().length)return 
this.$elem.append(a),this.setVars(),!1;this.unWrap();e=void 
0===b||-1===b?-1:b;e>=this.$userItems.length||-1===e?this.$userItems.eq(-1).after(a):this.$userItems.eq(e).before(a);this.setVars()},removeItem:function(a){if(0===this.$elem.children().length)return!1;a=void
 
0===a||-1===a?-1:a;this.unWrap();this.$userItems.eq(a).remove();this.setVars()}};f.fn.owlCarousel=function(a){return
 this.each(function(){if(!0===
+f(this).data("owl-init"))return!1;f(this).data("owl-init",!0);var 
b=Object.create(l);b.init(a,this);f.data(this,"owlCarousel",b)})};f.fn.owlCarousel.options={items:5,itemsCustom:!1,itemsDesktop:[1199,4],itemsDesktopSmall:[979,3],itemsTablet:[768,2],itemsTabletSmall:!1,itemsMobile:[479,1],singleItem:!1,itemsScaleUp:!1,slideSpeed:200,paginationSpeed:800,rewindSpeed:1E3,autoPlay:!1,stopOnHover:!1,navigation:!1,navigationText:["prev","next"],rewindNav:!0,scrollPerPage:!1,pagination:!0,paginationNumbers:!1,
+responsive:!0,responsiveRefreshRate:200,responsiveBaseWidth:g,baseClass:"owl-carousel",theme:"owl-theme",lazyLoad:!1,lazyFollow:!0,lazyEffect:"fade",autoHeight:!1,jsonPath:!1,jsonSuccess:!1,dragBeforeAnimFinish:!0,mouseDrag:!0,touchDrag:!0,addClassActive:!1,transitionStyle:!1,beforeUpdate:!1,afterUpdate:!1,beforeInit:!1,afterInit:!1,beforeMove:!1,afterMove:!1,afterAction:!1,startDragging:!1,afterLazyLoad:!1}})(jQuery,window,document);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/assets/js/storm.js
----------------------------------------------------------------------
diff --git a/assets/js/storm.js b/assets/js/storm.js
new file mode 100644
index 0000000..1aab7e1
--- /dev/null
+++ b/assets/js/storm.js
@@ -0,0 +1,67 @@
+$(document).ready(function() {
+       //Scroll to Top
+       $(".totop").hide();
+       $(window).scroll(function(){
+               if ($(this).scrollTop() > 300) {
+                       $('.totop').fadeIn();
+               } else {
+                       $('.totop').fadeOut();
+               }
+       });
+       $(".totop a").click(function(e) {
+               e.preventDefault();
+               $("html, body").animate({ scrollTop: 0 }, "slow");
+               return false;
+       });
+       
+    //Fixed Navigation
+    $('.navbar').affix({
+        offset: {
+            top: $('header').height()
+        }
+    });
+
+    //Owl Carousel For CLient List
+       $("#owl-example").owlCarousel({
+               items: 8
+       });     
+
+       $(".navbar li a").each(function() {
+               if(document.URL.indexOf(this.getAttribute('href'))>0)
+               {
+                       $(".navbar li a").removeClass('current');
+                       $(this).addClass('current');
+               }
+               if(document.URL.indexOf('/documentation/')>0)
+               {
+                       $(".navbar li a").removeClass('current');
+                       $('#documentation').addClass('current');
+               }
+               if(document.URL.indexOf('/contribute/')>0)
+               {
+                       $(".navbar li a").removeClass('current');
+                       $('#contribute').addClass('current');
+               }
+
+       });
+       $(".news li a").each(function() {
+               if(document.URL.indexOf(this.getAttribute('href'))>0 && 
!($("#news-list li a").hasClass('current'))){
+                       $("#news-list li a").removeClass('current');
+                       $(this).addClass('current');
+               }
+       });
+
+});;
+
+function isMobile() {
+           if (sessionStorage.desktop)
+               return false;
+           else if (localStorage.mobile)
+               $('#twitter_widget').hide();
+
+           var mobile = ['iphone','ipad','android','blackberry','nokia','opera 
mini','windows mobile','windows phone','iemobile']; 
+           for (var i in mobile) 
+               if 
(navigator.userAgent.toLowerCase().indexOf(mobile[i].toLowerCase()) > 0) 
+                       $('#twitter_widget').hide();
+           return false;
+       };
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/content/2012/08/02/storm080-released.html
----------------------------------------------------------------------
diff --git a/content/2012/08/02/storm080-released.html 
b/content/2012/08/02/storm080-released.html
new file mode 100644
index 0000000..7c378cf
--- /dev/null
+++ b/content/2012/08/02/storm080-released.html
@@ -0,0 +1,451 @@
+<!DOCTYPE html>
+<html>
+
+    <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
+    <link rel="icon" href="/favicon.ico" type="image/x-icon">
+
+    <title>Storm 0.8.0 and Trident released</title>
+
+    <!-- Bootstrap core CSS -->
+    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
+    <!-- Bootstrap theme -->
+    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">
+
+    <!-- Custom styles for this template -->
+    <link rel="stylesheet" 
href="http://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css";>
+    <link href="/css/style.css" rel="stylesheet">
+    <link href="/assets/css/owl.theme.css" rel="stylesheet">
+    <link href="/assets/css/owl.carousel.css" rel="stylesheet">
+    <script type="text/javascript" src="/assets/js/jquery.min.js"></script>
+    <script type="text/javascript" src="/assets/js/bootstrap.min.js"></script>
+    <script type="text/javascript" 
src="/assets/js/owl.carousel.min.js"></script>
+    <script type="text/javascript" src="/assets/js/storm.js"></script>
+    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
+    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
+    
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+  </head>
+
+
+
+    <body>
+
+    <header>
+  <div class="container-fluid">
+     <div class="row">
+          <div class="col-md-5">
+            <a href="/index.html"><img src="/images/logo.png" class="logo" 
/></a>
+          </div>
+          <div class="col-md-5">
+            
+          </div>
+          <div class="col-md-2">
+            <a href="/downloads.html" class="btn-std btn-block 
btn-download">Download</a>
+          </div>
+        </div>
+    </div>
+</header>
+<!--Header End-->
+<!--Navigation Begin-->
+<div class="navbar" role="banner">
+  <div class="container-fluid">
+      <div class="navbar-header">
+          <button class="navbar-toggle" type="button" data-toggle="collapse" 
data-target=".bs-navbar-collapse">
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+        </div>
+        <nav class="collapse navbar-collapse bs-navbar-collapse" 
role="navigation">
+          <ul class="nav navbar-nav">
+              <li><a href="/index.html" id="home">Home</a></li>
+                <li><a href="/getting-help.html" id="getting-help">Getting 
Help</a></li>
+                <li><a href="/about/integrates.html" id="project-info">Project 
Information</a></li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="documentation">Documentation <b class="caret"></b></a>
+                    <ul class="dropdown-menu">
+                      
+                        
+                          <li><a 
href="/releases/2.0.0-SNAPSHOT/index.html">2.0.0-SNAPSHOT</a></li>
+                        
+                      
+                        
+                          <li><a 
href="/releases/1.1.1/index.html">1.1.1</a></li>
+                        
+                      
+                        
+                          <li><a 
href="/releases/1.1.0/index.html">1.1.0</a></li>
+                        
+                      
+                        
+                      
+                        
+                          <li><a 
href="/releases/1.0.4/index.html">1.0.4</a></li>
+                        
+                      
+                        
+                      
+                        
+                          <li><a 
href="/releases/1.0.3/index.html">1.0.3</a></li>
+                        
+                      
+                        
+                      
+                        
+                      
+                        
+                      
+                        
+                          <li><a 
href="/releases/0.10.2/index.html">0.10.2</a></li>
+                        
+                      
+                        
+                          <li><a 
href="/releases/0.10.1/index.html">0.10.1</a></li>
+                        
+                      
+                        
+                      
+                        
+                      
+                        
+                          <li><a 
href="/releases/0.9.7/index.html">0.9.7</a></li>
+                        
+                      
+                        
+                          <li><a 
href="/releases/0.9.6/index.html">0.9.6</a></li>
+                        
+                      
+                        
+                      
+                        
+                      
+                        
+                      
+                        
+                      
+                        
+                      
+                    </ul>
+                </li>
+                <li><a href="/talksAndVideos.html">Talks and 
Slideshows</a></li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="contribute">Community <b class="caret"></b></a>
+                    <ul class="dropdown-menu">
+                        <li><a 
href="/contribute/Contributing-to-Storm.html">Contributing</a></li>
+                        <li><a href="/contribute/People.html">People</a></li>
+                        <li><a href="/contribute/BYLAWS.html">ByLaws</a></li>
+                    </ul>
+                </li>
+                <li><a href="/2017/08/01/storm111-released.html" 
id="news">News</a></li>
+            </ul>
+        </nav>
+    </div>
+</div>
+
+
+
+    <div class="container-fluid">
+        <div class="row">
+            <div class="col-md-12">
+                <div class="row">
+                    <div class="col-md-3">
+                        <ul class="news" id="news-list">
+                            
+                               <li><a 
href="/2017/08/01/storm111-released.html">Storm 1.1.1 Released</a></li>
+                               
+                               <li><a 
href="/2017/07/28/storm104-released.html">Storm 1.0.4 Released</a></li>
+                               
+                               <li><a 
href="/2017/03/29/storm110-released.html">Storm 1.1.0 released</a></li>
+                               
+                               <li><a 
href="/2017/02/14/storm103-released.html">Storm 1.0.3 Released</a></li>
+                               
+                               <li><a 
href="/2016/09/14/storm0102-released.html">Storm 0.10.2 Released</a></li>
+                               
+                               <li><a 
href="/2016/09/07/storm097-released.html">Storm 0.9.7 Released</a></li>
+                               
+                               <li><a 
href="/2016/08/10/storm102-released.html">Storm 1.0.2 Released</a></li>
+                               
+                               <li><a 
href="/2016/05/06/storm101-released.html">Storm 1.0.1 Released</a></li>
+                               
+                               <li><a 
href="/2016/05/05/storm0101-released.html">Storm 0.10.1 Released</a></li>
+                               
+                               <li><a 
href="/2016/04/12/storm100-released.html">Storm 1.0.0 released</a></li>
+                               
+                               <li><a 
href="/2015/11/05/storm096-released.html">Storm 0.9.6 released</a></li>
+                               
+                               <li><a 
href="/2015/11/05/storm0100-released.html">Storm 0.10.0 released</a></li>
+                               
+                               <li><a 
href="/2015/06/15/storm0100-beta-released.html">Storm 0.10.0 Beta 
Released</a></li>
+                               
+                               <li><a 
href="/2015/06/04/storm095-released.html">Storm 0.9.5 released</a></li>
+                               
+                               <li><a 
href="/2015/03/25/storm094-released.html">Storm 0.9.4 released</a></li>
+                               
+                               <li><a 
href="/2014/11/25/storm093-released.html">Storm 0.9.3 released</a></li>
+                               
+                               <li><a 
href="/2014/10/20/storm093-release-candidate.html">Storm 0.9.3 release 
candidate 1 available</a></li>
+                               
+                               <li><a 
href="/2014/06/25/storm092-released.html">Storm 0.9.2 released</a></li>
+                               
+                               <li><a 
href="/2014/06/17/contest-results.html">Storm Logo Contest Results</a></li>
+                               
+                               <li><a 
href="/2014/05/27/round1-results.html">Logo Contest - Round 1 Results</a></li>
+                               
+                               <li><a href="/2014/04/29/logo-jlee3.html">Logo 
Entry No. 11 - Jennifer Lee</a></li>
+                               
+                               <li><a href="/2014/04/29/logo-jlee2.html">Logo 
Entry No. 10 - Jennifer Lee</a></li>
+                               
+                               <li><a href="/2014/04/29/logo-jlee1.html">Logo 
Entry No. 9 - Jennifer Lee</a></li>
+                               
+                               <li><a href="/2014/04/27/logo-sasili.html">Logo 
Entry No. 8 - Stefano Asili</a></li>
+                               
+                               <li><a 
href="/2014/04/27/logo-cboustead.html">Logo Entry No. 7 - Calum 
Boustead</a></li>
+                               
+                               <li><a 
href="/2014/04/23/logo-abartos.html">Logo Entry No. 6 - Alec Bartos</a></li>
+                               
+                               <li><a 
href="/2014/04/22/logo-zsayari.html">Logo Entry No. 5 - Ziba Sayari</a></li>
+                               
+                               <li><a 
href="/2014/04/21/logo-rmarshall.html">Logo Entry No. 4 - Richard 
Brownlie-Marshall</a></li>
+                               
+                               <li><a 
href="/2014/04/19/logo-ssuleman.html">Logo Entry No. 3- Shaan Shiv 
Suleman</a></li>
+                               
+                               <li><a 
href="/2014/04/17/logo-squinones.html">Logo Entry No. 2 - Samuel 
Quiñones</a></li>
+                               
+                               <li><a 
href="/2014/04/17/logo-pforrest.html">Logo Entry No. 1 - Patricia 
Forrest</a></li>
+                               
+                               <li><a 
href="/2014/04/10/storm-logo-contest.html">Apache Storm Logo Contest</a></li>
+                               
+                               <li><a 
href="/2013/12/08/storm090-released.html">Storm 0.9.0 Released</a></li>
+                               
+                               <li><a 
href="/2013/01/11/storm082-released.html">Storm 0.8.2 released</a></li>
+                               
+                               <li><a 
href="/2012/09/06/storm081-released.html">Storm 0.8.1 released</a></li>
+                               
+                               <li><a 
href="/2012/08/02/storm080-released.html">Storm 0.8.0 and Trident 
released</a></li>
+                               
+                        </ul>
+                    </div>
+                    <div class="col-md-9" id="news-content">
+                            <h1 class="page-title">
+                               Storm 0.8.0 and Trident released
+                            </h1>
+                                
+                            <div class="row" style="margin: -15px;">
+                                <div class="col-md-12">
+                                    <p class="text-muted credit 
pull-left">Posted on Aug 2, 2012 by Nathan Marz</p>
+                                    <div class="pull-right">
+                                        <a 
+                                                
href="https://twitter.com/share"; 
+                                                class="twitter-share-button"
+                                                data-count=none
+                                        >Tweet</a>
+                                        <script> !function(d,s,id){
+                                                var js,
+                                                
fjs=d.getElementsByTagName(s)[0],
+                                                
p=/^http:/.test(d.location)?'http':'https';
+                                                if(!d.getElementById(id)){
+                                                    js=d.createElement(s);
+                                                    js.id=id;
+                                                    
js.src=p+'://platform.twitter.com/widgets.js';
+                                                    
fjs.parentNode.insertBefore(js,fjs);
+                                                }
+                                            }(document, 'script', 
'twitter-wjs');
+                                        </script>
+                                    </div>
+                                </div>
+                            </div>
+                        <div>
+                               <p>I&#39;m happy to announce the release of 
Storm 0.8.0. This is a <em>huge</em> release. Thanks to everyone who tested out 
the dev release and helped find and fix issues. And thanks to everyone who 
contributed pull requests. There&#39;s one big new thing available in the 
release: Trident. You may have heard me hint about Trident before, and now 
it&#39;s finally public. </p>
+
+<p>Trident is a higher level abstraction for Storm. It allows you to 
seamlessly mix high throughput (millions of messages per second), stateful 
stream processing with low latency distributed querying. If you&#39;re familiar 
with high level batch processing tools like Pig or Cascading, the concepts of 
Trident will be very familiar - Trident has joins, aggregations, grouping, 
functions, and filters. In addition to these, Trident adds primitives for doing 
stateful, incremental processing on top of any database or persistence store. 
Trident has consistent, exactly-once semantics, so it is easy to reason about 
Trident topologies. Trident is bundled with Storm, and you can read 
documentation about it on <a 
href="https://github.com/apache/incubator-storm/wiki/Documentation";>this 
page</a> (start with &quot;Trident tutorial&quot;).</p>
+
+<p>Trident supersedes both LinearDRPCTopologyBuilder and transactional 
topologies, both of which will be deprecated soon and eventually removed from 
the codebase. </p>
+
+<p>Here are the other highlights of this release: </p>
+
+<h2 id="executors">Executors</h2>
+
+<p>Prior to Storm 0.8.0, a running topology consisted of some number of 
workers and some number of tasks that ran on those workers. In the old model, 
worker = process and task = thread. Storm 0.8.0 changes this model by 
introducing executors. In this model, a worker = process, an executor = thread, 
and one executor runs many tasks from the same spout/bolt. </p>
+
+<p>The reason for the change is that the old model complected the semantics of 
the topology with its physical execution. For example, if you had a bolt with 4 
tasks doing a fields grouping on some stream, in order to maintain the 
semantics of the fields grouping (that the same value always goes to the same 
task id for that bolt), the number of tasks for that bolt needs to be fixed for 
the lifetime of the topology, and since task = thread, the number of threads 
for that bolt is fixed for the lifetime of the topology. In the new model, the 
number of threads for a bolt is disassociated from the number of tasks, meaning 
you can change the number of threads for a spout/bolt dynamically without 
affecting semantics. Similarly, if you&#39;re keeping large amounts of state in 
your bolts, and you want to increase the parallelism of the bolt without having 
to repartition the state, you can do this with the new executors. </p>
+
+<p>At the API level, the &quot;parallelism_hint&quot; now specifies the 
initial number of executors for that bolt. You can specify the number of tasks 
using the TOPOLOGY_TASKS component config. For example:</p>
+
+<p><code>
+builder.setBolt(new MyBolt(), 
3).setNumTasks(128).shuffleGrouping(&quot;spout&quot;); 
+</code></p>
+
+<p>This sets the initial number of executors to 3 and the number of tasks to 
128. If you don&#39;t specify the number of tasks for a component, it will be 
fixed to the initial number of executors for the lifetime of the topology. </p>
+
+<p>Finally, you can change the number of workers and/or number of executors 
for components using the &quot;storm rebalance&quot; command. The following 
command changes the number of workers for the &quot;demo&quot; topology to 3, 
the number of executors for the &quot;myspout&quot; component to 5, and the 
number of executors for the &quot;mybolt&quot; component to 1: </p>
+
+<p><code>
+storm rebalance demo -n 3 -e myspout=5 -e mybolt=1 
+</code></p>
+
+<h2 id="pluggable-scheduler">Pluggable scheduler</h2>
+
+<p>You can now implement your own scheduler to replace the default scheduler 
to assign executors to workers. You configure the class to use using the 
&quot;storm.scheduler&quot; config in your storm.yaml, and your scheduler must 
implement <a 
href="https://github.com/apache/incubator-storm/blob/master/src/jvm/backtype/storm/scheduler/IScheduler.java";>this
 interface</a>.</p>
+
+<h2 id="throughput-improvements">Throughput improvements</h2>
+
+<p>The internals of Storm have been rearchitected for extremely significant 
performance gains. I&#39;m seeing throughput increases of anywhere from 5-10x 
of what it was before. I&#39;ve benchmarked Storm at 1M tuples / sec / node on 
an internal Twitter cluster. </p>
+
+<p>The key changes made were: </p>
+
+<p>a) Replacing all the internal in-memory queuing with the LMAX Disruptor 
+b) Doing intelligent auto-batching of processing so that the consumers can 
keep up with the producers </p>
+
+<p>Here are the configs which affect how buffering/batching is done: </p>
+
+<p>topology.executor.receive.buffer.size 
+topology.executor.send.buffer.size 
+topology.receiver.buffer.size 
+topology.transfer.buffer.size </p>
+
+<p>These may require some tweaking to optimize your topologies, but most 
likely the default values will work fine for you out of the box. </p>
+
+<h2 id="decreased-zookeeper-load-increased-storm-ui-performance">Decreased 
Zookeeper load / increased Storm UI performance</h2>
+
+<p>Storm sends significantly less traffic to Zookeeper now (on the order of 
10x less). Since it also uses so many fewer znodes to store state, the UI is 
significantly faster as well. </p>
+
+<h2 id="abstractions-for-shared-resources">Abstractions for shared 
resources</h2>
+
+<p>The TopologyContext has methods &quot;getTaskData&quot;, 
&quot;getExecutorData&quot;, and &quot;getResource&quot; for sharing resources 
at the task level, executor level, or worker level respectively. Currently you 
can&#39;t set any worker resources, but this is in development. Storm currently 
provides a shared ExecutorService worker resource (via 
&quot;getSharedExecutor&quot; method) that can be used for launching background 
tasks on a shared thread pool. </p>
+
+<h2 id="tick-tuples">Tick tuples</h2>
+
+<p>It&#39;s common to require a bolt to &quot;do something&quot; at a fixed 
interval, like flush writes to a database. Many people have been using variants 
of a ClockSpout to send these ticks. The problem with a ClockSpout is that you 
can&#39;t internalize the need for ticks within your bolt, so if you forget to 
set up your bolt correctly within your topology it won&#39;t work correctly. 
0.8.0 introduces a new &quot;tick tuple&quot; config that lets you specify the 
frequency at which you want to receive tick tuples via the 
&quot;topology.tick.tuple.freq.secs&quot; component- specific config, and then 
your bolt will receive a tuple from the __system component and __tick stream at 
that frequency. </p>
+
+<h2 id="improved-storm-ui">Improved Storm UI</h2>
+
+<p>The Storm UI now has a button for showing/hiding the &quot;system 
stats&quot; (tuples sent on streams other than ones you&#39;ve defined, like 
acker streams), making it easier to digest what your topology is doing.</p>
+
+<p>Here&#39;s the full changelog for Storm 0.8.0: </p>
+
+<ul>
+<li>Added Trident, the new high-level abstraction for intermixing high 
throughput, stateful stream processing with low-latency distributed querying 
</li>
+<li>Added executor abstraction between workers and tasks. Workers = processes, 
executors = threads that run many tasks from the same spout or bolt. </li>
+<li>Pluggable scheduler (thanks xumingming) </li>
+<li>Eliminate explicit storage of task-&gt;component in Zookeeper </li>
+<li>Number of workers can be dynamically changed at runtime through rebalance 
command and -n switch </li>
+<li>Number of executors for a component can be dynamically changed at runtime 
through rebalance command and -e switch (multiple -e switches allowed) </li>
+<li>Use worker heartbeats instead of task heartbeats (thanks xumingming) </li>
+<li>UI performance for topologies with many executors/tasks much faster due to 
optimized usage of Zookeeper (10x improvement) </li>
+<li>Added button to show/hide system stats (e.g., acker component and stream 
stats) from the Storm UI (thanks xumingming) </li>
+<li>Stats are tracked on a per-executor basis instead of per-task basis </li>
+<li>Major optimization for unreliable spouts and unanchored tuples (will use 
far less CPU) </li>
+<li>Revamped internals of Storm to use LMAX disruptor for internal queuing. 
Dramatic reductions in contention and CPU usage. </li>
+<li>Numerous micro-optimizations all throughout the codebase to reduce CPU 
usage. </li>
+<li>Optimized internals of Storm to use much fewer threads - two fewer threads 
per spout and one fewer thread per acker. </li>
+<li>Removed error method from task hooks (to be re-added at a later time) </li>
+<li>Validate that subscriptions come from valid components and streams, and if 
it&#39;s a field grouping that the schema is correct (thanks xumingming) </li>
+<li>MemoryTransactionalSpout now works in cluster mode </li>
+<li>Only track errors on a component by component basis to reduce the amount 
stored in zookeeper (to speed up UI). A side effect of this change is the 
removal of the task page in the UI. </li>
+<li>Add TOPOLOGY-TICK-TUPLE-FREQ-SECS config to have Storm automatically send 
&quot;tick&quot; tuples to a bolt&#39;s execute method coming from the __system 
component and __tick stream at the configured frequency. Meant to be used as a 
component-specific configuration. </li>
+<li>Upgrade Kryo to v2.17 </li>
+<li>Tuple is now an interface and is much cleaner. The Clojure DSL helpers 
have been moved to TupleImpl </li>
+<li>Added shared worker resources. Storm provides a shared ExecutorService 
thread pool by default. The number of threads in the pool can be configured 
with topology.worker.shared.thread.pool.size </li>
+<li>Improve CustomStreamGrouping interface to make it more flexible by 
providing more information </li>
+<li>Enhanced INimbus interface to allow for forced schedulers and better 
integration with global scheduler </li>
+<li>Added assigned method to ISupervisor so it knows exactly what&#39;s 
running and not running </li>
+<li>Custom serializers can now have one of four constructors: (), (Kryo), 
(Class), or (Kryo, Class) </li>
+<li>Disallow &quot;:&quot;, &quot;.&quot;, and &quot;\&quot; from topology 
names </li>
+<li>Errors in multilang subprocesses that go to stderr will be captured and 
logged to the worker logs (thanks vinodc) </li>
+<li>Workers detect and warn for missing outbound connections from assignment, 
drop messages for which there&#39;s no outbound connection </li>
+<li>Zookeeper connection timeout is now configurable (via 
storm.zookeeper.connection.timeout config) </li>
+<li>Storm is now less aggressive about halting process when there are 
Zookeeper errors, preferring to wait until client calls return exceptions. </li>
+<li>Can configure Zookeeper authentication for Storm&#39;s Zookeeper clients 
via &quot;storm.zookeeper.auth.scheme&quot; and 
&quot;storm.zookeeper.auth.payload&quot; configs </li>
+<li>Supervisors only download code for topologies assigned to them </li>
+<li>Include task id information in task hooks (thanks velvia) </li>
+<li>Use execvp to spawn daemons (replaces the python launcher process) (thanks 
ept) </li>
+<li>Expanded INimbus/ISupervisor interfaces to provide more information (used 
in Storm/Mesos integration) </li>
+<li>Bug fix: Realize task ids when worker heartbeats to supervisor. Some users 
were hitting deserialization problems here in very rare cases (thanks 
herberteuler) </li>
+<li>Bug fix: Fix bug where a topology&#39;s status would get corrupted to true 
if nimbus is restarted while status is rebalancing </li>
+</ul>
+
+                           </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <footer>
+    <div class="container-fluid">
+        <div class="row">
+            <div class="col-md-3">
+                <div class="footer-widget">
+                    <h5>Meetups</h5>
+                    <ul class="latest-news">
+                        
+                        <li><a 
href="http://www.meetup.com/Apache-Storm-Apache-Kafka/";>Apache Storm & Apache 
Kafka</a> <span class="small">(Sunnyvale, CA)</span></li>
+                        
+                        <li><a 
href="http://www.meetup.com/Apache-Storm-Kafka-Users/";>Apache Storm & Kafka 
Users</a> <span class="small">(Seattle, WA)</span></li>
+                        
+                        <li><a 
href="http://www.meetup.com/New-York-City-Storm-User-Group/";>NYC Storm User 
Group</a> <span class="small">(New York, NY)</span></li>
+                        
+                        <li><a 
href="http://www.meetup.com/Bay-Area-Stream-Processing";>Bay Area Stream 
Processing</a> <span class="small">(Emeryville, CA)</span></li>
+                        
+                        <li><a 
href="http://www.meetup.com/Boston-Storm-Users/";>Boston Realtime Data</a> <span 
class="small">(Boston, MA)</span></li>
+                        
+                        <li><a 
href="http://www.meetup.com/storm-london";>London Storm User Group</a> <span 
class="small">(London, UK)</span></li>
+                        
+                        <!-- <li><a 
href="http://www.meetup.com/Apache-Storm-Kafka-Users/";>Seatle, WA</a> <span 
class="small">(27 Jun 2015)</span></li> -->
+                    </ul>
+                </div>
+            </div>
+            <div class="col-md-3">
+                <div class="footer-widget">
+                    <h5>About Storm</h5>
+                    <p>Storm integrates with any queueing system and any 
database system. Storm's spout abstraction makes it easy to integrate a new 
queuing system. Likewise, integrating Storm with database systems is easy.</p>
+               </div>
+            </div>
+            <div class="col-md-3">
+                <div class="footer-widget">
+                    <h5>First Look</h5>
+                    <ul class="footer-list">
+                        <li><a 
href="/releases/current/Rationale.html">Rationale</a></li>
+                        <li><a 
href="/releases/current/Tutorial.html">Tutorial</a></li>
+                        <li><a 
href="/releases/current/Setting-up-development-environment.html">Setting up 
development environment</a></li>
+                        <li><a 
href="/releases/current/Creating-a-new-Storm-project.html">Creating a new Storm 
project</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-md-3">
+                <div class="footer-widget">
+                    <h5>Documentation</h5>
+                    <ul class="footer-list">
+                        <li><a 
href="/releases/current/index.html">Index</a></li>
+                        <li><a 
href="/releases/current/javadocs/index.html">Javadoc</a></li>
+                        <li><a href="/releases/current/FAQ.html">FAQ</a></li>
+                    </ul>
+                </div>
+            </div>
+        </div>
+        <hr/>
+        <div class="row">   
+            <div class="col-md-12">
+                <p align="center">Copyright © 2015 <a 
href="http://www.apache.org";>Apache Software Foundation</a>. All Rights 
Reserved. 
+                    <br>Apache Storm, Apache, the Apache feather logo, and the 
Apache Storm project logos are trademarks of The Apache Software Foundation. 
+                    <br>All other marks mentioned may be trademarks or 
registered trademarks of their respective owners.</p>
+            </div>
+        </div>
+    </div>
+</footer>
+<!--Footer End-->
+<!-- Scroll to top -->
+<span class="totop"><a href="#"><i class="fa fa-angle-up"></i></a></span> 
+
+    </body>
+
+</html>
+

http://git-wip-us.apache.org/repos/asf/storm-site/blob/d070189e/content/2012/09/06/storm081-released.html
----------------------------------------------------------------------
diff --git a/content/2012/09/06/storm081-released.html 
b/content/2012/09/06/storm081-released.html
new file mode 100644
index 0000000..24b64c0
--- /dev/null
+++ b/content/2012/09/06/storm081-released.html
@@ -0,0 +1,385 @@
+<!DOCTYPE html>
+<html>
+
+    <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
+    <link rel="icon" href="/favicon.ico" type="image/x-icon">
+
+    <title>Storm 0.8.1 released</title>
+
+    <!-- Bootstrap core CSS -->
+    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
+    <!-- Bootstrap theme -->
+    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">
+
+    <!-- Custom styles for this template -->
+    <link rel="stylesheet" 
href="http://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css";>
+    <link href="/css/style.css" rel="stylesheet">
+    <link href="/assets/css/owl.theme.css" rel="stylesheet">
+    <link href="/assets/css/owl.carousel.css" rel="stylesheet">
+    <script type="text/javascript" src="/assets/js/jquery.min.js"></script>
+    <script type="text/javascript" src="/assets/js/bootstrap.min.js"></script>
+    <script type="text/javascript" 
src="/assets/js/owl.carousel.min.js"></script>
+    <script type="text/javascript" src="/assets/js/storm.js"></script>
+    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
+    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
+    
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+  </head>
+
+
+
+    <body>
+
+    <header>
+  <div class="container-fluid">
+     <div class="row">
+          <div class="col-md-5">
+            <a href="/index.html"><img src="/images/logo.png" class="logo" 
/></a>
+          </div>
+          <div class="col-md-5">
+            
+          </div>
+          <div class="col-md-2">
+            <a href="/downloads.html" class="btn-std btn-block 
btn-download">Download</a>
+          </div>
+        </div>
+    </div>
+</header>
+<!--Header End-->
+<!--Navigation Begin-->
+<div class="navbar" role="banner">
+  <div class="container-fluid">
+      <div class="navbar-header">
+          <button class="navbar-toggle" type="button" data-toggle="collapse" 
data-target=".bs-navbar-collapse">
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+        </div>
+        <nav class="collapse navbar-collapse bs-navbar-collapse" 
role="navigation">
+          <ul class="nav navbar-nav">
+              <li><a href="/index.html" id="home">Home</a></li>
+                <li><a href="/getting-help.html" id="getting-help">Getting 
Help</a></li>
+                <li><a href="/about/integrates.html" id="project-info">Project 
Information</a></li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="documentation">Documentation <b class="caret"></b></a>
+                    <ul class="dropdown-menu">
+                      
+                        
+                          <li><a 
href="/releases/2.0.0-SNAPSHOT/index.html">2.0.0-SNAPSHOT</a></li>
+                        
+                      
+                        
+                          <li><a 
href="/releases/1.1.1/index.html">1.1.1</a></li>
+                        
+                      
+                        
+                          <li><a 
href="/releases/1.1.0/index.html">1.1.0</a></li>
+                        
+                      
+                        
+                      
+                        
+                          <li><a 
href="/releases/1.0.4/index.html">1.0.4</a></li>
+                        
+                      
+                        
+                      
+                        
+                          <li><a 
href="/releases/1.0.3/index.html">1.0.3</a></li>
+                        
+                      
+                        
+                      
+                        
+                      
+                        
+                      
+                        
+                          <li><a 
href="/releases/0.10.2/index.html">0.10.2</a></li>
+                        
+                      
+                        
+                          <li><a 
href="/releases/0.10.1/index.html">0.10.1</a></li>
+                        
+                      
+                        
+                      
+                        
+                      
+                        
+                          <li><a 
href="/releases/0.9.7/index.html">0.9.7</a></li>
+                        
+                      
+                        
+                          <li><a 
href="/releases/0.9.6/index.html">0.9.6</a></li>
+                        
+                      
+                        
+                      
+                        
+                      
+                        
+                      
+                        
+                      
+                        
+                      
+                    </ul>
+                </li>
+                <li><a href="/talksAndVideos.html">Talks and 
Slideshows</a></li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="contribute">Community <b class="caret"></b></a>
+                    <ul class="dropdown-menu">
+                        <li><a 
href="/contribute/Contributing-to-Storm.html">Contributing</a></li>
+                        <li><a href="/contribute/People.html">People</a></li>
+                        <li><a href="/contribute/BYLAWS.html">ByLaws</a></li>
+                    </ul>
+                </li>
+                <li><a href="/2017/08/01/storm111-released.html" 
id="news">News</a></li>
+            </ul>
+        </nav>
+    </div>
+</div>
+
+
+
+    <div class="container-fluid">
+        <div class="row">
+            <div class="col-md-12">
+                <div class="row">
+                    <div class="col-md-3">
+                        <ul class="news" id="news-list">
+                            
+                               <li><a 
href="/2017/08/01/storm111-released.html">Storm 1.1.1 Released</a></li>
+                               
+                               <li><a 
href="/2017/07/28/storm104-released.html">Storm 1.0.4 Released</a></li>
+                               
+                               <li><a 
href="/2017/03/29/storm110-released.html">Storm 1.1.0 released</a></li>
+                               
+                               <li><a 
href="/2017/02/14/storm103-released.html">Storm 1.0.3 Released</a></li>
+                               
+                               <li><a 
href="/2016/09/14/storm0102-released.html">Storm 0.10.2 Released</a></li>
+                               
+                               <li><a 
href="/2016/09/07/storm097-released.html">Storm 0.9.7 Released</a></li>
+                               
+                               <li><a 
href="/2016/08/10/storm102-released.html">Storm 1.0.2 Released</a></li>
+                               
+                               <li><a 
href="/2016/05/06/storm101-released.html">Storm 1.0.1 Released</a></li>
+                               
+                               <li><a 
href="/2016/05/05/storm0101-released.html">Storm 0.10.1 Released</a></li>
+                               
+                               <li><a 
href="/2016/04/12/storm100-released.html">Storm 1.0.0 released</a></li>
+                               
+                               <li><a 
href="/2015/11/05/storm096-released.html">Storm 0.9.6 released</a></li>
+                               
+                               <li><a 
href="/2015/11/05/storm0100-released.html">Storm 0.10.0 released</a></li>
+                               
+                               <li><a 
href="/2015/06/15/storm0100-beta-released.html">Storm 0.10.0 Beta 
Released</a></li>
+                               
+                               <li><a 
href="/2015/06/04/storm095-released.html">Storm 0.9.5 released</a></li>
+                               
+                               <li><a 
href="/2015/03/25/storm094-released.html">Storm 0.9.4 released</a></li>
+                               
+                               <li><a 
href="/2014/11/25/storm093-released.html">Storm 0.9.3 released</a></li>
+                               
+                               <li><a 
href="/2014/10/20/storm093-release-candidate.html">Storm 0.9.3 release 
candidate 1 available</a></li>
+                               
+                               <li><a 
href="/2014/06/25/storm092-released.html">Storm 0.9.2 released</a></li>
+                               
+                               <li><a 
href="/2014/06/17/contest-results.html">Storm Logo Contest Results</a></li>
+                               
+                               <li><a 
href="/2014/05/27/round1-results.html">Logo Contest - Round 1 Results</a></li>
+                               
+                               <li><a href="/2014/04/29/logo-jlee3.html">Logo 
Entry No. 11 - Jennifer Lee</a></li>
+                               
+                               <li><a href="/2014/04/29/logo-jlee2.html">Logo 
Entry No. 10 - Jennifer Lee</a></li>
+                               
+                               <li><a href="/2014/04/29/logo-jlee1.html">Logo 
Entry No. 9 - Jennifer Lee</a></li>
+                               
+                               <li><a href="/2014/04/27/logo-sasili.html">Logo 
Entry No. 8 - Stefano Asili</a></li>
+                               
+                               <li><a 
href="/2014/04/27/logo-cboustead.html">Logo Entry No. 7 - Calum 
Boustead</a></li>
+                               
+                               <li><a 
href="/2014/04/23/logo-abartos.html">Logo Entry No. 6 - Alec Bartos</a></li>
+                               
+                               <li><a 
href="/2014/04/22/logo-zsayari.html">Logo Entry No. 5 - Ziba Sayari</a></li>
+                               
+                               <li><a 
href="/2014/04/21/logo-rmarshall.html">Logo Entry No. 4 - Richard 
Brownlie-Marshall</a></li>
+                               
+                               <li><a 
href="/2014/04/19/logo-ssuleman.html">Logo Entry No. 3- Shaan Shiv 
Suleman</a></li>
+                               
+                               <li><a 
href="/2014/04/17/logo-squinones.html">Logo Entry No. 2 - Samuel 
Quiñones</a></li>
+                               
+                               <li><a 
href="/2014/04/17/logo-pforrest.html">Logo Entry No. 1 - Patricia 
Forrest</a></li>
+                               
+                               <li><a 
href="/2014/04/10/storm-logo-contest.html">Apache Storm Logo Contest</a></li>
+                               
+                               <li><a 
href="/2013/12/08/storm090-released.html">Storm 0.9.0 Released</a></li>
+                               
+                               <li><a 
href="/2013/01/11/storm082-released.html">Storm 0.8.2 released</a></li>
+                               
+                               <li><a 
href="/2012/09/06/storm081-released.html">Storm 0.8.1 released</a></li>
+                               
+                               <li><a 
href="/2012/08/02/storm080-released.html">Storm 0.8.0 and Trident 
released</a></li>
+                               
+                        </ul>
+                    </div>
+                    <div class="col-md-9" id="news-content">
+                            <h1 class="page-title">
+                               Storm 0.8.1 released
+                            </h1>
+                                
+                            <div class="row" style="margin: -15px;">
+                                <div class="col-md-12">
+                                    <p class="text-muted credit 
pull-left">Posted on Sep 6, 2012 by Nathan Marz</p>
+                                    <div class="pull-right">
+                                        <a 
+                                                
href="https://twitter.com/share"; 
+                                                class="twitter-share-button"
+                                                data-count=none
+                                        >Tweet</a>
+                                        <script> !function(d,s,id){
+                                                var js,
+                                                
fjs=d.getElementsByTagName(s)[0],
+                                                
p=/^http:/.test(d.location)?'http':'https';
+                                                if(!d.getElementById(id)){
+                                                    js=d.createElement(s);
+                                                    js.id=id;
+                                                    
js.src=p+'://platform.twitter.com/widgets.js';
+                                                    
fjs.parentNode.insertBefore(js,fjs);
+                                                }
+                                            }(document, 'script', 
'twitter-wjs');
+                                        </script>
+                                    </div>
+                                </div>
+                            </div>
+                        <div>
+                               <p>Storm 0.8.1 is now available on the 
downloads page and in Maven. This release contains many bug fixes as well as a 
few important new features. These include: </p>
+
+<h2 
id="storm-39-s-unit-testing-facilities-have-been-exposed-via-java">Storm&#39;s 
unit testing facilities have been exposed via Java</h2>
+
+<p>This is an extremely powerful API that lets you do things like: 
+   a) Easily bring up and tear down local clusters 
+   b) Run a fixed set of tuples through a topology and see all the tuples 
emitted by all components 
+   c) Feed some tuples through the topology, wait until they&#39;ve been 
processed, and then run your assertions 
+   d) Use time simulation and step through time via an API. This is useful for 
testing topologies that do things based on time advancing. You can see examples 
of the unit testing API <a 
href="https://github.com/xumingming/storm-lib/blob/master/src/jvm/storm/TestingApiDemo.java";>here</a>.</p>
+
+<h2 id="spout-wait-strategies">Spout wait strategies</h2>
+
+<p>There&#39;s two situations in which a spout needs to wait. The first is 
when the max spout pending limit is reached. The second is when nothing is 
emitted from nextTuple. Previously, Storm would just have that spout sit in a 
busy loop in those cases. What Storm does in those situations is now pluggable, 
and the default is now for the spout to sleep for 1 ms. This will cause the 
spout to use dramatically less CPU when it hits those cases, and it also 
obviates the need for spouts to do any sleeping in their implementation to be 
&quot;polite&quot;. The wait strategy can be configured with 
TOPOLOGY_SPOUT_WAIT_STRATEGY and can be configured on a spout by spout basis. 
The interface to implement for a wait strategy is 
backtype.storm.spout.ISpoutWaitStrategy </p>
+
+<p>The full changelog is below: </p>
+
+<ul>
+<li>Exposed Storm&#39;s unit testing facilities via the backtype.storm.Testing 
class. Notable functions are Testing/withLocalCluster and 
Testing/completeTopology </li>
+<li>Implemented pluggable spout wait strategy that is invoked when a spout 
emits nothing from nextTuple or when a spout hits the MAX_SPOUT_PENDING limit 
</li>
+<li>Spouts now have a default wait strategy of a 1 millisecond sleep </li>
+<li>Changed log level of &quot;Failed message&quot; logging to DEBUG </li>
+<li>Deprecated LinearDRPCTopologyBuilder, TimeCacheMap, and transactional 
topologies </li>
+<li>During &quot;storm jar&quot;, whether topology is already running or not 
is checked before submitting jar to save time (thanks jasonjckn) </li>
+<li>Added BaseMultiReducer class to Trident that provides empty 
implementations of prepare and cleanup </li>
+<li>Added Negate builtin operation to reverse a Filter </li>
+<li>Added topology.kryo.decorators config that allows functions to be plugged 
in to customize Kryo (thanks jasonjckn) </li>
+<li>Enable message timeouts when using LocalCluster </li>
+<li>Multilang subprocesses can set &quot;need_task_ids&quot; to false when 
emitting tuples to tell Storm not to send task ids back (performance 
optimization) (thanks barrywhart) </li>
+<li>Add contains method on Tuple (thanks okapies) </li>
+<li>Added ISchemableSpout interface </li>
+<li>Bug fix: When an item is consumed off an internal buffer, the entry on the 
buffer is nulled to allow GC to happen on that data </li>
+<li>Bug fix: Helper class for Trident MapStates now clear their read cache 
when a new commit happens, preventing updates from spilling over from a failed 
batch attempt to the next attempt </li>
+<li>Bug fix: Fix NonTransactionalMap to take in an IBackingMap for regular 
values rather than TransactionalValue (thanks sjoerdmulder) </li>
+<li>Bug fix: Fix NPE when no input fields given for regular Aggregator </li>
+<li>Bug fix: Fix IndexOutOfBoundsExceptions when a bolt for global aggregation 
had a parallelism greater than 1 (possible with splitting, stateQuerying, and 
multiReduce) </li>
+<li>Bug fix: Fix &quot;fields size&quot; error that would sometimes occur when 
splitting a stream with multiple eaches </li>
+<li>Bug fix: Fix bug where a committer spout (including opaque spouts) could 
cause Trident batches to fail </li>
+<li>Bug fix: Fix Trident bug where multiple groupings on same stream would 
cause tuples to be duplicated to all consumers </li>
+<li>Bug fix: Fixed error when repartitioning stream twice in a row without any 
operations in between </li>
+<li>Bug fix: Fix rare bug in supervisor where it would continuously fail to 
clean up workers because the worker was already partially cleaned up </li>
+<li>Bug fix: Fix emitDirect in storm.py </li>
+</ul>
+
+                           </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <footer>
+    <div class="container-fluid">
+        <div class="row">
+            <div class="col-md-3">
+                <div class="footer-widget">
+                    <h5>Meetups</h5>
+                    <ul class="latest-news">
+                        
+                        <li><a 
href="http://www.meetup.com/Apache-Storm-Apache-Kafka/";>Apache Storm & Apache 
Kafka</a> <span class="small">(Sunnyvale, CA)</span></li>
+                        
+                        <li><a 
href="http://www.meetup.com/Apache-Storm-Kafka-Users/";>Apache Storm & Kafka 
Users</a> <span class="small">(Seattle, WA)</span></li>
+                        
+                        <li><a 
href="http://www.meetup.com/New-York-City-Storm-User-Group/";>NYC Storm User 
Group</a> <span class="small">(New York, NY)</span></li>
+                        
+                        <li><a 
href="http://www.meetup.com/Bay-Area-Stream-Processing";>Bay Area Stream 
Processing</a> <span class="small">(Emeryville, CA)</span></li>
+                        
+                        <li><a 
href="http://www.meetup.com/Boston-Storm-Users/";>Boston Realtime Data</a> <span 
class="small">(Boston, MA)</span></li>
+                        
+                        <li><a 
href="http://www.meetup.com/storm-london";>London Storm User Group</a> <span 
class="small">(London, UK)</span></li>
+                        
+                        <!-- <li><a 
href="http://www.meetup.com/Apache-Storm-Kafka-Users/";>Seatle, WA</a> <span 
class="small">(27 Jun 2015)</span></li> -->
+                    </ul>
+                </div>
+            </div>
+            <div class="col-md-3">
+                <div class="footer-widget">
+                    <h5>About Storm</h5>
+                    <p>Storm integrates with any queueing system and any 
database system. Storm's spout abstraction makes it easy to integrate a new 
queuing system. Likewise, integrating Storm with database systems is easy.</p>
+               </div>
+            </div>
+            <div class="col-md-3">
+                <div class="footer-widget">
+                    <h5>First Look</h5>
+                    <ul class="footer-list">
+                        <li><a 
href="/releases/current/Rationale.html">Rationale</a></li>
+                        <li><a 
href="/releases/current/Tutorial.html">Tutorial</a></li>
+                        <li><a 
href="/releases/current/Setting-up-development-environment.html">Setting up 
development environment</a></li>
+                        <li><a 
href="/releases/current/Creating-a-new-Storm-project.html">Creating a new Storm 
project</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-md-3">
+                <div class="footer-widget">
+                    <h5>Documentation</h5>
+                    <ul class="footer-list">
+                        <li><a 
href="/releases/current/index.html">Index</a></li>
+                        <li><a 
href="/releases/current/javadocs/index.html">Javadoc</a></li>
+                        <li><a href="/releases/current/FAQ.html">FAQ</a></li>
+                    </ul>
+                </div>
+            </div>
+        </div>
+        <hr/>
+        <div class="row">   
+            <div class="col-md-12">
+                <p align="center">Copyright © 2015 <a 
href="http://www.apache.org";>Apache Software Foundation</a>. All Rights 
Reserved. 
+                    <br>Apache Storm, Apache, the Apache feather logo, and the 
Apache Storm project logos are trademarks of The Apache Software Foundation. 
+                    <br>All other marks mentioned may be trademarks or 
registered trademarks of their respective owners.</p>
+            </div>
+        </div>
+    </div>
+</footer>
+<!--Footer End-->
+<!-- Scroll to top -->
+<span class="totop"><a href="#"><i class="fa fa-angle-up"></i></a></span> 
+
+    </body>
+
+</html>
+

Reply via email to