{"id":13863,"date":"2013-06-07T13:00:47","date_gmt":"2013-06-07T10:00:47","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/?p=13863"},"modified":"2013-06-07T06:26:19","modified_gmt":"2013-06-07T03:26:19","slug":"invoking-async-method-call-using-future-object-in-spring","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html","title":{"rendered":"Invoking Async method call using Future object in Spring"},"content":{"rendered":"<p>The next example will demonstrate an async method call inside the Spring container. Why do we need async method calls? In some cases we don\u2019t really know <strong>if<\/strong> replay is expected or <strong>when<\/strong> a result supposed to be delivered back. Traditional way In the Java EE world of handling async calls is using Queue\/Topic. We could do the same in Spring but if needed a simple async invocation, you could do it easily by following the next steps:<\/p>\n<h2>1. Declare\u00a0<em>Asynchronous Gateway:<\/em><\/h2>\n<p>&nbsp;<br \/>\n&nbsp;<\/p>\n<pre class=\" brush:xml\">&lt;bean id=\"executionLogicImpl\"\r\n class=\"com.test.components.execution_gateway.ExecutionLogicImpl\"\r\n abstract=\"false\" lazy-init=\"default\" autowire=\"default\"&gt;\r\n &lt;\/bean&gt;<\/pre>\n<h2>2. declare interface method with return type \u2013 Future(Java 5+):<\/h2>\n<p>More information on Future object:\u00a0<a href=\"http:\/\/docs.oracle.com\/javase\/1.5.0\/docs\/api\/java\/util\/concurrent\/Future.html\">http:\/\/docs.oracle.com\/javase\/1.5.0\/docs\/api\/java\/util\/concurrent\/Future.html<\/a><\/p>\n<pre class=\" brush:java\">public interface ExecutionLogic\r\n{\r\n\r\n public Future&lt;String&gt; doSomeExecutionLogic(String message);\r\n\r\n}<\/pre>\n<p>* As soon as the GatewayProxyFactoryBean notice a return type Future it will switch the method into an async mode by having\u00a0AsyncTaskExecutor<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<h2>3. We will create a job channel which will collect all requests and send them asynchronously to another class(ExecutionLogicImpl) in order to process them(some random business logic):<\/h2>\n<pre class=\" brush:xml\">&lt;int:channel id=\"job1Channel\" \/&gt;\r\n\r\n&lt;int:service-activator input-channel=\"job1Channel\" ref=\"executionLogicImpl\" method=\"doSomeExecutionLogic\" \/&gt;<\/pre>\n<p>The class\u00a0ExecutionLogicImpl:<\/p>\n<pre class=\" brush:java\">public class ExecutionLogicImpl\r\n{\r\n public String doSomeExecutionLogic(String msg)\r\n {\r\n try\r\n {\r\n System.out.println(\"doing long work on message=\"+msg);\r\n Thread.sleep(8000);\r\n\r\n}\r\n catch (InterruptedException e)\r\n {\r\n \/\/ TODO Auto-generated catch block\r\n e.printStackTrace();\r\n }\r\n return msg + \"_completed\";\r\n\r\n}\r\n\r\n}<\/pre>\n<p>Test class:<\/p>\n<pre class=\" brush:java\">import com.test.components.execution_gateway.ExecutionLogic;\r\n\r\npublic class testExeceution\r\n\r\n{\r\n\r\n...\r\nExecutionLogic executionLogic;\r\npublic String sendMsgToExecutionQueue(String msg)\r\n {\r\n Future&lt;String&gt; processedMessage = executionLogic.doSomeExecutionLogic(msg);\r\n\r\nString finalResult = \"\";\r\n try\r\n {\r\n finalResult = \" \" + processedMessage.get(TIMEOUT, TimeUnit.SECONDS);\r\n return \"1 final result: \" + finalResult; \/\/ + \" \" + response;\r\n }\r\n catch (ExecutionException e)\r\n {\r\n return \"1 final result: \" + e + finalResult;\/\/ + \" \" + response;\r\n }\r\n catch (TimeoutException tex)\r\n {\r\n return \"1 final result: \" + tex + finalResult; \/\/ + \" \" + response;\r\n }\r\n catch (Exception ex)\r\n {\r\n return \"1 final result: \" + ex + finalResult;\/\/ + \" \" + response;\r\n }\r\n\r\n}\r\n...\r\n}<\/pre>\n<p>* You can enable timeout using the Future object for cases a response will never be returned.<\/p>\n<p>So what\u2019s happening here? We sending input to be executed asynchronously. The sender is waiting for response (asynchronously) as soon as the request finish it\u2019s processing a result will be sent back to the sender.<br \/>\n&nbsp;<\/p>\n<div style=\"border: 1px solid #D8D8D8; background: #FAFAFA; width: 100%; padding-left: 5px;\"><b><i>Reference: <\/i><\/b><a href=\"http:\/\/www.idanfridman.com\/blog1\/doing-async-method-call-using-future-object-in-spring\/\">Invoking Async method call using Future object in Spring<\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/jcg\">JCG partner<\/a> Idan Fridman at the <a href=\"http:\/\/www.idanfridman.com\/\">IdanFridman.com<\/a> blog.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The next example will demonstrate an async method call inside the Spring container. Why do we need async method calls? In some cases we don\u2019t really know if replay is expected or when a result supposed to be delivered back. Traditional way In the Java EE world of handling async calls is using Queue\/Topic. We &hellip;<\/p>\n","protected":false},"author":438,"featured_media":240,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[88,30],"class_list":["post-13863","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-concurrency","tag-spring"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Invoking Async method call using Future object in Spring<\/title>\n<meta name=\"description\" content=\"The next example will demonstrate an async method call inside the Spring container. Why do we need async method calls? In some cases we don\u2019t really know\" \/>\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.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Invoking Async method call using Future object in Spring\" \/>\n<meta property=\"og:description\" content=\"The next example will demonstrate an async method call inside the Spring container. Why do we need async method calls? In some cases we don\u2019t really know\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2013-06-07T10:00:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Idan Fridman\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Idan Fridman\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2013\\\/06\\\/invoking-async-method-call-using-future-object-in-spring.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2013\\\/06\\\/invoking-async-method-call-using-future-object-in-spring.html\"},\"author\":{\"name\":\"Idan Fridman\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/0031fb2f8d5e740a534f8138b30dfc98\"},\"headline\":\"Invoking Async method call using Future object in Spring\",\"datePublished\":\"2013-06-07T10:00:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2013\\\/06\\\/invoking-async-method-call-using-future-object-in-spring.html\"},\"wordCount\":249,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2013\\\/06\\\/invoking-async-method-call-using-future-object-in-spring.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"keywords\":[\"Concurrency\",\"Spring\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2013\\\/06\\\/invoking-async-method-call-using-future-object-in-spring.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2013\\\/06\\\/invoking-async-method-call-using-future-object-in-spring.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2013\\\/06\\\/invoking-async-method-call-using-future-object-in-spring.html\",\"name\":\"Invoking Async method call using Future object in Spring\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2013\\\/06\\\/invoking-async-method-call-using-future-object-in-spring.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2013\\\/06\\\/invoking-async-method-call-using-future-object-in-spring.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"datePublished\":\"2013-06-07T10:00:47+00:00\",\"description\":\"The next example will demonstrate an async method call inside the Spring container. Why do we need async method calls? In some cases we don\u2019t really know\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2013\\\/06\\\/invoking-async-method-call-using-future-object-in-spring.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2013\\\/06\\\/invoking-async-method-call-using-future-object-in-spring.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2013\\\/06\\\/invoking-async-method-call-using-future-object-in-spring.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"width\":150,\"height\":150,\"caption\":\"spring-interview-questions-answers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2013\\\/06\\\/invoking-async-method-call-using-future-object-in-spring.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Invoking Async method call using Future object in Spring\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/0031fb2f8d5e740a534f8138b30dfc98\",\"name\":\"Idan Fridman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5a13bef76f5f364bca1fa987c395fd5f2b8d8eba86fb6ec1666219197432427e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5a13bef76f5f364bca1fa987c395fd5f2b8d8eba86fb6ec1666219197432427e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5a13bef76f5f364bca1fa987c395fd5f2b8d8eba86fb6ec1666219197432427e?s=96&d=mm&r=g\",\"caption\":\"Idan Fridman\"},\"description\":\"Idan is Software engineer with experience in Server side technologies. Idan is responsible for various infrastructure models in the software industry(Telecommunications, Finance).\",\"sameAs\":[\"http:\\\/\\\/www.idanfridman.com\",\"http:\\\/\\\/www.linkedin.com\\\/pub\\\/idan-fridman\\\/21\\\/ab5\\\/b25\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/idan-fridman\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Invoking Async method call using Future object in Spring","description":"The next example will demonstrate an async method call inside the Spring container. Why do we need async method calls? In some cases we don\u2019t really know","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.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html","og_locale":"en_US","og_type":"article","og_title":"Invoking Async method call using Future object in Spring","og_description":"The next example will demonstrate an async method call inside the Spring container. Why do we need async method calls? In some cases we don\u2019t really know","og_url":"https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2013-06-07T10:00:47+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","type":"image\/jpeg"}],"author":"Idan Fridman","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Idan Fridman","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html"},"author":{"name":"Idan Fridman","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/0031fb2f8d5e740a534f8138b30dfc98"},"headline":"Invoking Async method call using Future object in Spring","datePublished":"2013-06-07T10:00:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html"},"wordCount":249,"commentCount":1,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","keywords":["Concurrency","Spring"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html","url":"https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html","name":"Invoking Async method call using Future object in Spring","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","datePublished":"2013-06-07T10:00:47+00:00","description":"The next example will demonstrate an async method call inside the Spring container. Why do we need async method calls? In some cases we don\u2019t really know","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","width":150,"height":150,"caption":"spring-interview-questions-answers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2013\/06\/invoking-async-method-call-using-future-object-in-spring.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Invoking Async method call using Future object in Spring"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/0031fb2f8d5e740a534f8138b30dfc98","name":"Idan Fridman","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5a13bef76f5f364bca1fa987c395fd5f2b8d8eba86fb6ec1666219197432427e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5a13bef76f5f364bca1fa987c395fd5f2b8d8eba86fb6ec1666219197432427e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5a13bef76f5f364bca1fa987c395fd5f2b8d8eba86fb6ec1666219197432427e?s=96&d=mm&r=g","caption":"Idan Fridman"},"description":"Idan is Software engineer with experience in Server side technologies. Idan is responsible for various infrastructure models in the software industry(Telecommunications, Finance).","sameAs":["http:\/\/www.idanfridman.com","http:\/\/www.linkedin.com\/pub\/idan-fridman\/21\/ab5\/b25"],"url":"https:\/\/www.javacodegeeks.com\/author\/idan-fridman"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/13863","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/438"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=13863"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/13863\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/240"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=13863"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=13863"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=13863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}