function toggleSearch(a){null!=a&&$search.val(a),a=$search.val().trim().toLowerCase();var b=Boolean(a);b||$search.val("").focus(),performSearch(a),$searchBar.toggleClass("has-feedback",b),$homeDiv.toggleClass("hidden",b),$results.toggleClass("hidden",!b)}function performSearch(a){results=filter(a);var b=results.length,c=4,d=$("#pagination-results");d.empty(),d.removeData("twbs-pagination"),b>c&&d.twbsPagination({totalPages:Math.ceil(b/c),visiblePages:4,onPageClick:function(b,d){displayPage(d,c,a)}}),displayPage(1,c,a)}function displayPage(a,b,c){var d=$("#resultList");d.empty();var e=results.length,f=Math.ceil(e/b),g=$("#pagination-results");if(g.find(".first, .prev").toggleClass("hidden",1==a),g.find(".next, .last").toggleClass("hidden",a==f),e>0){var h=(a-1)*b,i=b;a==f&&(i=b-(f*b-results.length));try{for(var j=h;jNo quickstarts match your criteria")}function filter(a){for(var b=[],c=wizards.concat(searchResults),d=0;d-1||!isEnabled(e)||(containsIgnoreCase(e.label,a)||containsIgnoreCase(e.description,a)||tagsMatch(e,a))&&b.push(e)}return b}function tagsMatch(a,b){if(!a.hasOwnProperty("tags"))return!1;for(var c=0;c-1}function closePopover(a){var b=$(a).parent().parent().parent();setTimeout(function(){b.popover("hide")},500);var c=a.checked;c!=showOnStartup&&(showOnStartup=c,storeShowOnStartup())}function addPopover(a,b,c,d,e){null==b&&(b="auto bottom"),null==c&&(c="hover"),null==d&&(d=function(){return $(this).next(".popper-content").html()}),null==e&&(e="body"),a.popover({container:e,placement:b,trigger:c,html:!0,content:d})}function result2Html(a){var b=a.hasOwnProperty("iconUrl")?a.iconUrl:"images/icon-default.png",c='
',c+=''+a.label+"",c+='

'+a.description+"

",c+=buildTags(a)+"
",$qsDiv=$(c),$qsDiv}function buildTags(a){if(!a.hasOwnProperty("tags"))return"";for(var b='
    ',c=0;c'+e.toUpperCase()+"")}return b+="
      "}function loadBuzz(a){for($buzz=$("#buzz"),$buzzTemplate=$("#buzz").find("div.active").clone(),$buzzTemplate.removeClass("active"),i=0;i'+b.description+"

      ";c.html(d),c.appendTo($buzz)}catch(e){}$("#buzz-carousel").carousel({interval:3500})}function loadWizards(a,b){null!=a&&(wizards=a),null!=b&&(favorites=b);var c=wizards.concat(favorites);for($wizards=$("#wizards .row"),$wizards.find(".popper").each(function(){$(this).popover("hide")}),$wizards.empty(),i=0;i

      @title@

      @title@

      @description@

      @product@

      ');f=replaceAll("@type@",isQuickStart(d)?"quickstart":"wizard",f),f=replaceAll("@id@",d.id,f),f=replaceAll("@iconUrl@",e,f),f=replaceAll("@description@",d.description,f),f=replaceAll("@product@",getProduct(d),f);var g=$(f);addPopover(g.find(".popper")),g.appendTo($wizards)}}}function getProduct(a){if(!a.hasOwnProperty("tags"))return"";for(var b=0;bProduct: "+c.split(":")[1].toUpperCase()+""}return""}function replaceAll(a,b,c){return c.replace(new RegExp(a,"g"),b)}function loadQuickstarts(a){searchResults=a}function loadFavorites(a){favorites=a,loadWizards()}function registerQuickstartClicks(){$(document).on("click","a.list-group-item-heading",function(a){a.preventDefault(),$(this).popover("hide");var b=$(this).parent().data("project-id");delegateToIDE($(this).parent().data("project-type"),b)})}function registerButtonClicks(){$("#addtools").on("click",function(a){a.preventDefault(),delegateToIDE("openpage","org.jboss.tools.central.editors.SoftwarePage")}),"function"==typeof openInIDE&&$(document).on("click","a.external",function(a){a.preventDefault(),delegateToIDE("openlink",$(this).attr("href"))})}function registerTagClicks(){$("#resultList").on("click"," ul.tags li",function(a){toggleSearch($(this).text())})}function handleEarlyAccess(a,b){isEarlyAccessEnabled=a,a?($("#earlyaccess").html(b),$("#earlyaccess").show()):$("#earlyaccess").hide()}function toggleEarlyAccess(a){isEarlyAccessEnabled=a,a?$("#earlyaccess").show():$("#earlyaccess").hide()}function delegateToIDE(a,b){"function"==typeof openInIDE?openInIDE(a,b):alert(a+" : "+b)}function setShowOnStartup(a){showOnStartup="true"==a,$(".showOnStartup").attr("checked",showOnStartup)}function storeShowOnStartup(){delegateToIDE("showonstartup",showOnStartup)}function isQuickStart(a){return a.hasOwnProperty("title")}function setIntegrationStackSupport(a){integrationStackSupport=a}function setAvailablePlugins(a){availablePlugins=a,isBRMSAvailable=containsIgnoreCase(availablePlugins,"org.jbpm.eclipse"),isFuseAvailable=containsIgnoreCase(availablePlugins,"org.fusesource.ide.tooling")}function drop(a){a.preventDefault();var b;b=document.documentMode?a.dataTransfer.getData("Text"):a.dataTransfer.getData("text/uri-list");var c,d="https://download.jboss.org/jbosstools/central/install?connectors=",e="https://devstudio.jboss.com/central/install?connectors=",f="https://devstudio.redhat.com/central/install?connectors=";return 0===b.indexOf(d)?c=b.replace(d,""):0===b.indexOf(f)?c=url.replace(f,""):0===b.indexOf(e)&&(c=url.replace(e,"")),delegateToIDE("drop",c),!1}function registerDND(){$(document.body).bind("dragover",function(a){a.preventDefault()},!1),$(document.body).bind("dragenter",function(a){a.preventDefault()},!1),$(document.body).bind("drop",function(a){return a.preventDefault(),!1})}function cleanUpTag(a){var b=a.indexOf("-jboss_as_quickstarts");return b>-1&&(a=a.substring(0,b)),a}var $searchBar=$("#searchBar"),$search=$("#search"),$clearSearch=$("#clearSearch"),$results=$("#results"),$homeDiv=$("#home"),blacklist=["h2-console"],results=[],wizards=[];favorites=[],showOnStartup=!0,integrationStackSupport=!1,isEarlyAccessEnabled=!1,availablePlugins=[],isFuseAvailable=!1,isBRMSAvailable=!1;var searchResults=[{id:"jbossdeveloper_quickstart-d66221c3",label:"hulabaloo",title:"xml-jaxp: Upload and Parse an XML File Using DOM or SAX",description:"The `xml-jaxp` quickstart demonstrates how to use Servlet and JSF to upload an XML file to JBoss EAP and validate and parse it using DOM or SAX.",tags:["DOM","Servlet","SAX","JAXP","fuse"]},{id:"jbossdeveloper_quickstart-7aa80b86",label:"ejb-security",title:"ejb-security: Using Java EE Declarative Security to Control Access",description:"The `ejb-security` quickstart demonstrates the use of Java EE declarative security to control access to Servlets and EJBs in JBoss EAP.",tags:["EJB","Security"]},{id:"jbossdeveloper_quickstart-e927771a",label:"h2-console",title:"h2-console: Example Using the H2 Console with JBoss EAP",description:"The `h2-console` quickstart demonstrates how to use the H2 Console that is bundled with and built specifically for JBoss EAP.",tags:["H2"]},{id:"jbossdeveloper_quickstart-5f6f6254",label:"jts",title:"jts: Java Transaction Service - Distributed EJB Transactions",description:"The `jts` quickstart shows how to use JTS to perform distributed transactions across multiple containers, fulfilling the properties of an ACID transaction.",tags:["JTS"]},{id:"jbossdeveloper_quickstart-55d9a642",label:"cluster-ha-singleton",title:"cluster-ha-singleton: A SingletonService Started by a SingletonStartup",description:"The `cluster-ha-singleton` quickstart deploys a Service, wrapped with the SingletonService decorator, and used as a cluster-wide singleton service.",tags:["HASingleton","JNDI","EJB"]},{id:"jbossdeveloper_quickstart-e0f66336",label:"bean-validation-custom-constraint",title:"bean-validation-custom-constraint: Bean Validation Using Custom Constraints",description:"The `bean-validation-custom-constraint` quickstart demonstrates how to use the Bean Validation API to define custom constraints and validators.",tags:["BV","CDI","JPA"]},{id:"jbossdeveloper_quickstart-8c871579",label:"kitchensink-ear",title:"kitchensink-ear: Using Multiple Java EE 6 Technologies Deployed as an EAR",description:"The `kitchensink-ear` quickstart demonstrates web-enabled database application, using JSF, CDI, EJB, JPA and Bean Validation, packaged as an EAR.",tags:["BV","EAR","CDI","JPA","JSF","EJB","JAX-RS"]},{id:"jbossdeveloper_quickstart-f04f101b",label:"cdi-veto",title:"cdi-veto: A Simple CDI Portable Extension Example",description:"The `cdi-veto` quickstart is a simple CDI Portable Extension that uses SPI classes to show how to remove beans and inject JPA entities into an application.",tags:["CDI"]},{id:"jbossdeveloper_quickstart-cf8f65ad",label:"bean-validation",title:"bean-validation: Bean Validation Tested Using Arquillian",description:"The `bean-validation` quickstart provides Arquillian tests to demonstrate how to use CDI 1.0, JPA 2.0 and Bean Validation 1.0.",tags:["BV","CDI","JPA"]},{id:"jbossdeveloper_quickstart-7abbd519",label:"tasks",title:"tasks: Test JPA with Arquillian",description:"The `tasks` quickstart includes a persistence unit and sample persistence code to demonstrates how to use JPA 2.0 for database access in JBoss EAP.",tags:["JPA","Arquillian"]},{id:"jbossdeveloper_quickstart-11a4307c",label:"helloworld-mdb-propertysubstitution",title:"helloworld-mdb-propertysubstitution: MDB (Message-Driven Bean) Using Property Substitution",description:"The `helloworld-mdb-propertysubstitution` quickstart demonstrates the use of *JMS 1.1* and *EJB 3.1 MDB*, enabling property substitution with annotations.",tags:["JMS","MDB","EJB"]},{id:"jbossdeveloper_quickstart-8bc46068",label:"greeter",title:"greeter: Demonstrates CDI, JPA, JTA, EJB 3.1, and JSF",description:"The `greeter` quickstart demonstrates the use of *CDI 1.0*, *JPA 2.0*, *JTA 1.1*, *EJB 3.1* and *JSF 2.1* in JBoss EAP.",tags:["JTA","CDI","JPA","JSF","EJB"]},{id:"jbossdeveloper_quickstart-c3acf4be",label:"temperature-converter",title:"temperature-converter: Stateless Session EJB (SLSB)",description:"The `temperature-converter` quickstart does temperature conversion using an *EJB 3.1 Stateless Session Bean* (SLSB), *CDI*, and a *JSF* front-end client.",tags:["CDI","SLSB EJB","JSF"]},{id:"jbossdeveloper_quickstart-63c4c140",label:"wsba-coordinator-completion-simple",title:"wsba-coordinator-completion-simple: Example of a WS-BA Enabled JAX-WS Web Service",description:"The `wsba-coordinator-completion-simple` quickstart deploys a WS-BA (WS Business Activity) enabled JAX-WS Web service WAR (CoordinatorCompletion protocol).",tags:["WS-BA","JAX-WS"]},{id:"jbossdeveloper_quickstart-30255298",label:"cdi-alternative",title:"cdi-alternative: Demonstrates CDI Alternatives",description:"The `cdi-alternative` quickstart demonstrates how to create a bean that can be implemented for different purposes without changing the source code.",tags:["JSP","CDI","Servlet"]},{id:"jbossdeveloper_quickstart-d2f65af3",label:"ejb-asynchronous",title:"ejb-asynchronous: EJB with asynchronous methods",description:"The `ejb-asynchronous` quickstart demonstrates the behavior of asynchronous EJB invocations by a deployed EJB and a remote client and how to handle errors.",tags:["Asynchronous EJB"]},{id:"jbossdeveloper_quickstart-c4b63524",label:"mail",title:"mail: E-Mail Example using CDI and JSF",description:"The `mail` quickstart demonstrates how to send email using CDI 1.0 and JSF 2.1 and the default Mail provider that ships with JBoss EAP.",tags:["JavaMail","CDI","JSF"]},{id:"jbossdeveloper_quickstart-7d1094da",label:"ejb-in-ear",title:"ejb-in-ear: Deployment of an EAR Containing a JSF WAR and EJB JAR",description:"The `ejb-in-ear` quickstart demonstrates how to deploy an EAR archive that contains a *JSF 2.1* WAR and an *EJB 3.1* JAR.",tags:["EAR","EJB"]},{id:"jbossdeveloper_quickstart-3f82586e",label:"cdi-interceptors",title:"cdi-interceptors: Example Using CDI Interceptors",description:"The `cdi-interceptors` quickstart demonstrates how to use CDI interceptors for cross-cutting concerns such as logging and simple auditing.",tags:["JPA","JSF","EJB"]},{id:"jbossdeveloper_quickstart-e7abf822",label:"app-client",title:"app-client: Use the JBoss EAP Application Client Container",description:"The `app-client` quickstart demonstrates how to code and package a client app and use the JBoss EAP client container to start the client Main program.",tags:["EAR","AppClient","EJB"]},{id:"jbossdeveloper_quickstart-fdec999a",label:"kitchensink-ml-ear",title:"kitchensink-ml-ear: Localized Version of the kitchensink-ear Quickstart",description:"The `kitchensink-ml-ear` quickstart demonstrates a localized database application, using JSF, CDI, EJB, JPA and Bean Validation, packaged as an EAR.",tags:["l10n","BV","EAR","CDI","JPA","JSF","EJB","JAX-RS","i18n"]},{id:"jbossdeveloper_quickstart-05dc10e8",label:"kitchensink-ml",title:"kitchensink-ml: Localized Version of the kitchensink Quickstart",description:"The `kitchensink-ml` quickstart demonstrates a localized Java EE 6 compliant application using JSF, CDI, EJB, JPA and Bean Validation.",tags:["l10n","BV","CDI","JPA","JSF","EJB","JAX-RS","i18n"]},{id:"jbossdeveloper_quickstart-9a356589",label:"bmt",title:"bmt: Bean Managed Transactions with JPA and JTA",description:"The `bmt` quickstart demonstrates Bean-Managed Transactions (BMT), showing how to manually manage transaction demarcation while accessing JPA entities.",tags:["BMT","EJB"]},{id:"jbossdeveloper_quickstart-6af0aa62",label:"ejb-timer",title:"ejb-timer: Example of EJB Timer Service - @Schedule and @Timeout",description:"The `ejb-timer` quickstart demonstrates how to use the EJB 3.1 timer service `@Schedule` and `@Timeout` annotations with JBoss EAP.",tags:["EJB 3.1 Timer"]},{id:"jbossdeveloper_quickstart-0eb538cc",label:"cdi-portable-extension",title:"cdi-portable-extension: CDI Portable Extension",description:"The `cdi-portable-extension` quickstart demonstrates a simple CDI Portable Extension that uses SPI classes to inject beans with data from an XML file.",tags:["CDI"]},{id:"jbossdeveloper_quickstart-2eb1d12a",label:"helloworld-mdb",title:"helloworld-mdb: Helloworld Using an MDB (Message-Driven Bean)",description:"The `helloworld-mdb` quickstart uses *JMS 1.1* and *EJB 3.1 Message-Driven Bean* (MDB) to create and deploy JMS topic and queue resources in JBoss EAP.",tags:["JMS","MDB","EJB"]},{id:"jbossdeveloper_quickstart-736ab533",label:"cdi-stereotype",title:"cdi-stereotype: Example Using CDI Stereotype.",description:"The `cdi-stereotype` quickstart demonstrates how to apply CDI stereotypes to beans to encapsulate CDI interceptor bindings and CDI alternatives.",tags:["JPA","JSF","EJB"]},{id:"jbossdeveloper_quickstart-c07fd3a1",label:"helloworld-jms",title:"helloworld-jms: Helloworld JMS Example",description:"The `helloworld-jms` quickstart demonstrates the use of external JMS clients with JBoss EAP.",tags:["JMS"]},{id:"jbossdeveloper_quickstart-ec93e82e",label:"numberguess",title:"numberguess: Example Using CDI and JSF",description:"The `numberguess` quickstart demonstrates the use of *CDI 1.0* (Contexts and Dependency Injection) and *JSF 2.1* (JavaServer Faces) in JBoss EAP.",tags:["CDI","JSF"]},{id:"jbossdeveloper_quickstart-19735541",label:"inter-app",title:"inter-app: Communicate Between Two Applications Using EJB and CDI",description:"The `inter-app` quickstart shows you how to use a shared API JAR and an EJB to provide inter-application communication between two WAR deployments.",tags:["CDI","EJB","JSF"]},{id:"jbossdeveloper_quickstart-61ea7eff",label:"websocket-hello",title:"jboss-websocket-hello: A simple WebSocket application",description:"The `websocket-hello` quickstart demonstrates how to create a simple WebSocket application.",tags:["CDI","JSF","WebSocket"]},{id:"jbossdeveloper_quickstart-941f8005",label:"servlet-security",title:"servlet-security: Using Java EE Declarative Security to Control Servlet Access",description:"The `servlet-security` quickstart demonstrates the use of Java EE declarative security to control access to Servlets and Security in JBoss EAP.",tags:["Servlet","Security"]}];$(function(){$search.keyup(function(a){if(27==a.keyCode)return void $clearSearch.click();toggleSearch()}),$clearSearch.on("click",function(){$search.val(""),toggleSearch()})}),$(function(){addPopover($(".popper"));var a=function(){return $content=$(this).next(".popper-content"),$checkbox=$content.find(".showOnStartup"),$checkbox.attr("checked",showOnStartup),$content.html()};addPopover($(".settings"),"auto left","click",a,"#settingsContainer .settings")}),$(document).ready(function(){registerDND(),document.body.addEventListener("drop",drop,!1),registerQuickstartClicks(),registerButtonClicks(),registerTagClicks(),"function"==typeof initialize?initialize():loadWizards(wizards,favorites),$("#search-form").submit(function(){return!1})});