{"id":13126,"date":"2019-12-08T19:34:41","date_gmt":"2019-12-08T18:34:41","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/"},"modified":"2019-12-08T19:34:41","modified_gmt":"2019-12-08T18:34:41","slug":"jboss-eap-7-modules-extensions-subsystems-and-profiles","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/","title":{"rendered":"JBoss EAP 7 &#8211; Modules, Extensions, Subsystems, and Profiles"},"content":{"rendered":"<p>The first step in JBoss world is to understand these terms and the relationship between each other: Modules, Extensions, Subsystems, and Profiles.<br \/>\nLet&#8217;s say that the definition of these terms is the same between Standalone and Domain mode. I will explain each term separately then I will show you the difference in terms of profiles management between Standalone and Domain mode.<br \/>\n<!--more--><\/p>\n<h1>Modules<\/h1>\n<p>A module basically provides code (Java Classes) to be used by EAP services and\/or by applications. Modules are loaded into an isolated Classloader, and can only see classes from other modules when explicitly requested. In fact, all code running is run inside modules, I mean by code the code provided by the core and the Application code. <\/p>\n<p>Moreover, an application can see a module that exposes a particular version of an API. So, an application developer may control this manually and it can be very useful. But by default, EAP 7 automatically decides which modules to expose to an application, based on its use of JEE APIs.<\/p>\n<p>All modules available in an EAP 7 installation are folders inside JBOSS_HOME\/modules:<\/p>\n<ul>\n<li><strong>Modules for EAP 7 Product under<\/strong>: JBOSS_HOME\/modules\/system\/layers\/base folder.<\/li>\n<li><strong>Modules for third-party products under<\/strong>: JBOSS_HOME\/modules\/system\/layers folder.<\/li>\n<li><strong>Local modules folders added by a system administrator should be under<\/strong>: JBOSS_HOME\/modules.<\/li>\n<\/ul>\n<p>Inside one of the module folders listed above, a module name is used to create a folder tree. For example, the module named:<\/p>\n<ul>\n<li><strong>org.wildfly.extension.undertow<\/strong> is under JBOSS_HOME\/modules\/system\/layers as org\/wildfly\/extension\/undertow.<\/li>\n<li><strong>com.oracle<\/strong> is under JBOSS_HOME\/modules as com\/oracle.<\/li>\n<\/ul>\n<h1>Extensions<\/h1>\n<p>A module that provides features and capabilities to the application server is called an extension, or let&#8217;s say that the extension is the reference of a module in .xml configuration files.<br \/>\nFor example, the module org.wildfly.extension.undertow is referenced as below in the standalone.xml file:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;server xmlns=&quot;urn:jboss:domain:4.1&quot;&gt;\n    &lt;extensions&gt;\n\t\t...\n\t\t&lt;extension module=&quot;org.wildfly.extension.undertow&quot;\/&gt;\n\t\t...\n\t&lt;\/extensions&gt;\n\t...\n<\/pre>\n<p>So, Extensions are added to an EAP instance using the &#8220;extension&#8221; element, which appears at the beginning of the EAP main configuration files : standalone.xml or domain.xml.<br \/>\nAdding an extension to the configuration files does not make that extension module loaded and active, it make the extension available for management. For example, clustering configurations can be done if the related extensions are available, but the related modules will only be loaded and activated when an application that requires clustering services is deployed. Which is really a good point for JBoss!<\/p>\n<h1>Subsystems<\/h1>\n<p>An extension management model provides one or more subsystems. When an extension is added to an EAP instance, the capabilities and attributes of the subsystems provided by the extension management model are configured within the &#8220;subsystem&#8221; element in the EAP configuration file.<br \/>\nMost of the time, an extension module provides a single subsystem, but a subsystem use multiple extension modules&#8230; For example:<\/p>\n<ul>\n<li><strong>org.wildfly.clustering.web.infinispan<\/strong> extention module is used by the infinispan subsystem, which use also using org.wildfly.clustering.server:\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;subsystem xmlns=&quot;urn:jboss:domain:infinispan:4.0&quot;&gt;\n\t&lt;cache-container name=&quot;server&quot; aliases=&quot;singleton cluster&quot; default-cache=&quot;default&quot; module=&quot;org.wildfly.clustering.server&quot;&gt;\n\t\t...\n\t&lt;\/cache-container&gt;\n\t&lt;cache-container name=&quot;web&quot; default-cache=&quot;dist&quot; module=&quot;org.wildfly.clustering.web.infinispan&quot;&gt;\n\t\t...\n\t&lt;\/cache-container&gt;\n\t...\n<\/pre>\n<\/li>\n<li><strong>org.jboss.as.clustering.jgroups<\/strong> extension module is used by the jgroups subsystem.<\/li>\n<\/ul>\n<p>In fact, each subsystem has its own XML schema to define what is allowed within its  element. All EAP 7 subsystem schema definitions can be found in the JBOSS_HOME\/docs\/schema folder:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1 \">\n[jboss@vmjboss ~]$ ls -rtl\ntotal 8312\n-rw-rw-r-- 1 jboss jboss   5604 Apr 18  2016 xml.xsd\n-rw-rw-r-- 1 jboss jboss  33107 Apr 18  2016 wildfly-undertow_3_1.xsd\n-rw-rw-r-- 1 jboss jboss  31295 Apr 18  2016 wildfly-undertow_3_0.xsd\n-rw-rw-r-- 1 jboss jboss  26467 Apr 18  2016 wildfly-undertow_2_0.xsd\n-rw-rw-r-- 1 jboss jboss  24042 Apr 18  2016 wildfly-undertow_1_2.xsd\n-rw-rw-r-- 1 jboss jboss  22155 Apr 18  2016 wildfly-undertow_1_1.xsd\n-rw-rw-r-- 1 jboss jboss  20317 Apr 18  2016 wildfly-undertow_1_0.xsd\n-rw-rw-r-- 1 jboss jboss  54521 Apr 18  2016 jboss-as-infinispan_4_0.xsd\n-rw-rw-r-- 1 jboss jboss  55506 Apr 18  2016 jboss-as-infinispan_3_0.xsd\n-rw-rw-r-- 1 jboss jboss  55006 Apr 18  2016 jboss-as-infinispan_2_0.xsd\n-rw-rw-r-- 1 jboss jboss  49219 Apr 18  2016 jboss-as-infinispan_1_5.xsd\n-rw-rw-r-- 1 jboss jboss  48569 Apr 18  2016 jboss-as-infinispan_1_4.xsd\n-rw-rw-r-- 1 jboss jboss  47823 Apr 18  2016 jboss-as-infinispan_1_3.xsd\n-rw-rw-r-- 1 jboss jboss  47555 Apr 18  2016 jboss-as-infinispan_1_2.xsd\n-rw-rw-r-- 1 jboss jboss  42567 Apr 18  2016 jboss-as-infinispan_1_1.xsd\n-rw-rw-r-- 1 jboss jboss  42144 Apr 18  2016 jboss-as-infinispan_1_0.xsd\n-rw-rw-r-- 1 jboss jboss  14994 Apr 18  2016 jboss-as-jgroups_4_0.xsd\n-rw-rw-r-- 1 jboss jboss  14734 Apr 18  2016 jboss-as-jgroups_3_0.xsd\n-rw-rw-r-- 1 jboss jboss   9042 Apr 18  2016 jboss-as-jgroups_2_0.xsd\n-rw-rw-r-- 1 jboss jboss   7368 Apr 18  2016 jboss-as-jgroups_1_1.xsd\n-rw-rw-r-- 1 jboss jboss   6558 Apr 18  2016 jboss-as-jgroups_1_0.xsd\n...\n<\/pre>\n<p>All subsystems can be configured using the CLI or the Management Console, I don&#8217;t recommand the manual xml update especially in this case! The management tools will make the update properly when needed.<\/p>\n<h1>Profiles<\/h1>\n<p>A profile is a group of subsystems configurations, by default there are four predefined profiles can be used in Standalone mode and Domain mode:<\/p>\n<ul>\n<li><strong>default<\/strong>: Is the basic subsystem but the most commonly used one, including logging, security, datasources, infinispan, weld, webservices, and ejb3&#8230;\n<li><strong>ha<\/strong>: Contains the exact same subsystems as the default profile, with the addition of clustering capabilities, provided mainly by the jgroups subsystem.\n<li><strong>full<\/strong>: Is similar to the default profile, but notably adds the messaging (messagingactivemq) and a few other less used subsystems.\n<li><strong>full-ha<\/strong>: Is same as the full profile, but with the addition of clustering capabilities.\n<\/ul>\n<p>Of course, you can create new profiles, either from scratch or cloned from the ones provided out-of-the-box.<\/p>\n<h2>Standalone vs Domain mode<\/h2>\n<p>As said before, four profiles are configured by default on Standalone and Domain mode, but where the profiles are configured is diffrent:<\/p>\n<p><strong>Standalone<\/strong><br \/>\nIn the JBOSS_HOME\/standalone\/configuration folder you can find four standalone configuration files:<\/p>\n<ul>\n<li><strong>standalone.xml<\/strong>: which has the default profile configured.<\/li>\n<li><strong>standalone-ha.xml<\/strong>: which has the ha profile configured.<\/li>\n<li><strong>standalone-full.xml<\/strong>: which has the full profile configured.<\/li>\n<li><strong>standalone-full-ha.xml<\/strong>: which has the full-ha profile configured.<\/li>\n<\/ul>\n<p>By default the standalone.sh script will start an instance with default profile so using standalone.xml, if you want to start an instance with another profile you have to give the .xml configuration file as parameter, to use full-ha profile:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1 \">\n$JBOSS_HOME\/bin\/standalone.sh --server-config=standalone-full-ha.xml\n<\/pre>\n<p>So a standalone server instance can easily be started with more or less subsystems available, it is up to you to choose the needed profile.<\/p>\n<p><strong>Domain<\/strong><br \/>\nIn the domain the story is a little bit different, four profiles mentioned before exist in the domain.xml file:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;profiles&gt;\n    &lt;profile name=&quot;default&quot;&gt;\n\t\t... &lt;!-- Subsystems configuration --&gt;\n\t&lt;\/profile&gt;\n    &lt;profile name=&quot;ha&quot;&gt;\n\t\t... &lt;!-- Subsystems configuration --&gt;\n\t&lt;\/profile&gt;\n    &lt;profile name=&quot;full&quot;&gt;\n\t\t... &lt;!-- Subsystems configuration --&gt;\n\t&lt;\/profile&gt;\n    &lt;profile name=&quot;full-ha&quot;&gt;\n\t\t... &lt;!-- Subsystems configuration --&gt;\n\t&lt;\/profile&gt;\n&lt;\/profiles&gt;\n<\/pre>\n<p>Then when you create a server group you need to specify a profile, which will be the same for all servers in this group.<\/p>\n<p>I hope that this blog will help you to understand the terms evoked (Modules, Extensions, Subsystems, and Profiles) and relationships between them. If any question remain don&#8217;t hesitate to ask \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The first step in JBoss world is to understand these terms and the relationship between each other: Modules, Extensions, Subsystems, and Profiles. Let&#8217;s say that the definition of these terms is the same between Standalone and Domain mode. I will explain each term separately then I will show you the difference in terms of profiles [&hellip;]<\/p>\n","protected":false},"author":46,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197],"tags":[117,1773,118,1774,1775,1776,1777],"type_dbi":[],"class_list":["post-13126","post","type-post","status-publish","format-standard","hentry","category-application-integration-middleware","tag-domain","tag-extention","tag-jboss","tag-module","tag-profile","tag-standalone","tag-subsystem"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>JBoss EAP 7 - Modules, Extensions, Subsystems, and Profiles - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JBoss EAP 7 - Modules, Extensions, Subsystems, and Profiles\" \/>\n<meta property=\"og:description\" content=\"The first step in JBoss world is to understand these terms and the relationship between each other: Modules, Extensions, Subsystems, and Profiles. Let&#8217;s say that the definition of these terms is the same between Standalone and Domain mode. I will explain each term separately then I will show you the difference in terms of profiles [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-12-08T18:34:41+00:00\" \/>\n<meta name=\"author\" content=\"David Diab\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Diab\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-modules-extensions-subsystems-and-profiles\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-modules-extensions-subsystems-and-profiles\\\/\"},\"author\":{\"name\":\"David Diab\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/deb907c3360cacdc6c7df54b4bac3c86\"},\"headline\":\"JBoss EAP 7 &#8211; Modules, Extensions, Subsystems, and Profiles\",\"datePublished\":\"2019-12-08T18:34:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-modules-extensions-subsystems-and-profiles\\\/\"},\"wordCount\":1079,\"commentCount\":0,\"keywords\":[\"domain\",\"extention\",\"JBoss\",\"module\",\"profile\",\"standalone\",\"subsystem\"],\"articleSection\":[\"Application integration &amp; Middleware\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-modules-extensions-subsystems-and-profiles\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-modules-extensions-subsystems-and-profiles\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-modules-extensions-subsystems-and-profiles\\\/\",\"name\":\"JBoss EAP 7 - Modules, Extensions, Subsystems, and Profiles - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2019-12-08T18:34:41+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/deb907c3360cacdc6c7df54b4bac3c86\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-modules-extensions-subsystems-and-profiles\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-modules-extensions-subsystems-and-profiles\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-modules-extensions-subsystems-and-profiles\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JBoss EAP 7 &#8211; Modules, Extensions, Subsystems, and Profiles\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/deb907c3360cacdc6c7df54b4bac3c86\",\"name\":\"David Diab\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g\",\"caption\":\"David Diab\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/david-diab\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"JBoss EAP 7 - Modules, Extensions, Subsystems, and Profiles - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/","og_locale":"en_US","og_type":"article","og_title":"JBoss EAP 7 - Modules, Extensions, Subsystems, and Profiles","og_description":"The first step in JBoss world is to understand these terms and the relationship between each other: Modules, Extensions, Subsystems, and Profiles. Let&#8217;s say that the definition of these terms is the same between Standalone and Domain mode. I will explain each term separately then I will show you the difference in terms of profiles [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/","og_site_name":"dbi Blog","article_published_time":"2019-12-08T18:34:41+00:00","author":"David Diab","twitter_card":"summary_large_image","twitter_misc":{"Written by":"David Diab","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/"},"author":{"name":"David Diab","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/deb907c3360cacdc6c7df54b4bac3c86"},"headline":"JBoss EAP 7 &#8211; Modules, Extensions, Subsystems, and Profiles","datePublished":"2019-12-08T18:34:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/"},"wordCount":1079,"commentCount":0,"keywords":["domain","extention","JBoss","module","profile","standalone","subsystem"],"articleSection":["Application integration &amp; Middleware"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/","url":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/","name":"JBoss EAP 7 - Modules, Extensions, Subsystems, and Profiles - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2019-12-08T18:34:41+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/deb907c3360cacdc6c7df54b4bac3c86"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"JBoss EAP 7 &#8211; Modules, Extensions, Subsystems, and Profiles"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/deb907c3360cacdc6c7df54b4bac3c86","name":"David Diab","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g","caption":"David Diab"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/david-diab\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/13126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/46"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=13126"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/13126\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=13126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=13126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=13126"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=13126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}