{"id":69144,"date":"2017-10-03T01:00:55","date_gmt":"2017-10-02T22:00:55","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/?p=69144"},"modified":"2017-10-02T11:12:29","modified_gmt":"2017-10-02T08:12:29","slug":"introducing-openhub-framework","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.html","title":{"rendered":"Introducing OpenHub framework"},"content":{"rendered":"<p>This article introduces <a class=\"external-link\" href=\"http:\/\/www.openhubframework.org\/\" rel=\"nofollow\">OpenHub framework<\/a>\u00a0&#8211; new open-source integration solution\u00a0based on <a class=\"external-link\" href=\"http:\/\/camel.apache.org\/\" rel=\"nofollow\">Apache Camel<\/a>. The article responds to questions why you should care about another integration framework, what are strong\/weak properties and how to start a new project with OpenHub.<\/p>\n<h2 id=\"IntroducingOpenHubframework-OpenHubframeworkisApacheCamel,butimproved...\">OpenHub framework is Apache Camel, but improved &#8230;<\/h2>\n<p>You can of course use only Apache Camel but you need to add a lot of other libraries, check their compatibility, prepare database and application server, then configure and tune everything together for production quality. Furthermore, for solving real problems you often need more than basic functionality &#8230;<\/p>\n<p>OpenHub framework puts together\u00a0the best application libraries and frameworks and creates a proven, tested and supported application stack that you can take and start integrating\u00a0immediately. Moreover you get enterprise functionality that is available in commercial versions only.<\/p>\n<p>Besides, OpenHub framework offers an effective way to structure project, to create routes and test them. It is based on several years&#8217; experience with implementation integration projects. Nevertheless, it&#8217;s up to you which approach to use, whether OpenHub&#8217;s functionality or directly\u00a0<a class=\"external-link\" href=\"http:\/\/camel.apache.org\/\" rel=\"nofollow\">Apache Camel<\/a>. There are no limitations in using Camel&#8217;s functionalities. You can choose functionality from Camel, OpenHub framework or another third-party component. Of course you\u00a0can use the same tools which can be used by Apache Camel, for example\u00a0<a href=\"http:\/\/www.redhat.com\/en\/technologies\/jboss-middleware\/fuse\">Red Hat\u00ae JBoss\u00ae Fuse<\/a> or <a href=\"http:\/\/hawt.io\/\">Hawtio<\/a>.<\/p>\n<p>Our recommendation is to use best from both &#8211; use OpenHub framework as base (defines project structure, application stack, offers a lot of useful functionality for future use, &#8230;) together with any Camel&#8217;s functionality you need, also with third-party tools which work with\u00a0<a class=\"external-link\" href=\"http:\/\/camel.apache.org\/\" rel=\"nofollow\">Apache Camel<\/a>.<\/p>\n<h2 id=\"IntroducingOpenHubframework-Architecture\">Architecture<\/h2>\n<p>OpenHub framework\u00a0extends Apache Camel and therefore\u00a0<a class=\"external-link\" href=\"http:\/\/camel.apache.org\/architecture.html\" rel=\"nofollow\">base architecture<\/a>\u00a0came up from Apache Camel. We have created full application stack with the following libraries and frameworks:<\/p>\n<ul>\n<li><a class=\"external-link\" href=\"https:\/\/projects.spring.io\/spring-boot\/\" rel=\"nofollow\">Spring Boot<\/a><\/li>\n<li><a class=\"external-link\" href=\"http:\/\/projects.spring.io\/spring-framework\/\" rel=\"nofollow\">Spring Framework<\/a><\/li>\n<li><a class=\"external-link\" href=\"http:\/\/projects.spring.io\/spring-security\/\" rel=\"nofollow\">Spring Security<\/a>\u00a0solves security issues<\/li>\n<li><a class=\"external-link\" href=\"http:\/\/projects.spring.io\/spring-ws\/\" rel=\"nofollow\">Spring Web Services<\/a>\u00a0is main component for web services communication<\/li>\n<li><a class=\"external-link\" href=\"http:\/\/hibernate.org\/\" rel=\"nofollow\">Hibernate<\/a>\u00a0for persistence implementation<\/li>\n<li><a class=\"external-link\" href=\"http:\/\/www.postgresql.org\/\" rel=\"nofollow\">PostgreSQL<\/a>\u00a0database (or <a class=\"external-link\" href=\"http:\/\/www.h2database.com\/\" rel=\"nofollow\">H2 DB<\/a> for unit tests)<\/li>\n<li><a class=\"external-link\" href=\"http:\/\/tomcat.apache.org\/\" rel=\"nofollow\">Apache Tomcat<\/a> application server<\/li>\n<li><a class=\"external-link\" href=\"https:\/\/hazelcast.com\/use-cases\/caching\/spring-cache\/\" rel=\"nofollow\">Hazelcast<\/a>\u00a0cache \/ memory grid<\/li>\n<\/ul>\n<p><figure id=\"attachment_69164\" aria-describedby=\"caption-attachment-69164\" style=\"width: 860px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2017\/09\/OpenHub_architecture.png\"><img decoding=\"async\" class=\"wp-image-69164 size-full\" title=\"Architecture\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2017\/09\/OpenHub_architecture.png\" alt=\"OpenHub application architecture\" width=\"860\" height=\"608\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2017\/09\/OpenHub_architecture.png 860w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2017\/09\/OpenHub_architecture-300x212.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2017\/09\/OpenHub_architecture-768x543.png 768w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><figcaption id=\"caption-attachment-69164\" class=\"wp-caption-text\">Architecture<\/figcaption><\/figure><div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>OpenHub is neutral to the database and application server. OpenHub supports both on-premise and cloud installations.<\/p>\n<p>OpenHub framework has been created with the flexibility in mind &#8211; you can use\/extend implementation from Camel, OpenHub or write your own.<\/p>\n<h2 id=\"IntroducingOpenHubframework-WhyuseOpenHubframework?\">Why use OpenHub framework?<\/h2>\n<p>OpenHub comes with <a href=\"https:\/\/openhubframework.atlassian.net\/wiki\/spaces\/OHF\/pages\/33600\/Why+OpenHub+framework\">enterprise functions<\/a> like an asynchronous messaging model, cluster support and its own admin console.<\/p>\n<p>The following patterns are implemented in <a href=\"https:\/\/openhubframework.atlassian.net\/wiki\/spaces\/OHF\/pages\/33610\/Asynchronous+messages\">asynchronous messaging model<\/a>:<\/p>\n<ul>\n<li><strong>parent-child concept<\/strong> &#8211;\u00a0if one message is too complex to process then it can be splitted into smaller child messages (partial messages),<\/li>\n<li><strong>obsolete messages<\/strong> &#8211; this functionality\u00a0checks for duplicate and outdated calls,<\/li>\n<li><strong>funnel<\/strong>\u00a0is for filtering concurrent messages at specific integration point. This filtering ensures that only one message at one moment will be processed, even in guaranteed order (optional choice),<\/li>\n<li><strong>guaranteed message processing order<\/strong> ensures processing order of incoming messages,<\/li>\n<li><strong>confirmation to callee system<\/strong> &#8211;\u00a0when asynchronous message is processed (is in the final status) then OpenHub\u00a0can transmit information about result of processing to callee, system,<\/li>\n<li><strong>monitoring \/ alerts<\/strong> &#8211;\u00a0defines metrics for watching database data and if any metric exceeds its limit then alert is activated and further operation can be executed.<\/li>\n<\/ul>\n<p>There are no limitations for synchronous messages from a performance point of view &#8211; it&#8217;s as fast as Apache Camel. For asynchronous messages we use a database by default for saving states &#8211; although this could be a bottleneck in some cases from a performance point of view, it still has many advantages. So far we haven&#8217;t hit performance limits in our real projects but we wouldn&#8217;t recommend it for really performance demanding projects.\u00a0On the other side we believe that every company has a database and therefore we would also like to reuse it for OpenHub. Nevertheless there is possibility to use JMS\/MQ systems in your company to support asynchronous messaging.<\/p>\n<p><figure id=\"attachment_69168\" aria-describedby=\"caption-attachment-69168\" style=\"width: 650px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2017\/09\/OpenHub_admin.png\"><img decoding=\"async\" class=\"wp-image-69168 size-full\" title=\"Admin console\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2017\/09\/OpenHub_admin.png\" alt=\"OpenHub's admin console GUI\" width=\"650\" height=\"732\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2017\/09\/OpenHub_admin.png 650w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2017\/09\/OpenHub_admin-266x300.png 266w\" sizes=\"(max-width: 650px) 100vw, 650px\" \/><\/a><figcaption id=\"caption-attachment-69168\" class=\"wp-caption-text\">Admin console<\/figcaption><\/figure><\/p>\n<h2 id=\"IntroducingOpenHubframework-Createnewproject\">Create new project<\/h2>\n<p>Create new Maven project with reference to parent artifact of OpenHub framework:<\/p>\n<p><span style=\"text-decoration: underline\"><em>pom.xml<\/em><\/span><\/p>\n<pre class=\"brush:xml; wrap-lines:false\">&lt;project xmlns=\"http:\/\/maven.apache.org\/POM\/4.0.0\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0xsi:schemaLocation=\"http:\/\/maven.apache.org\/POM\/4.0.0 http:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\"&gt;\r\n\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;modelVersion&gt;4.0.0&lt;\/modelVersion&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;groupId&gt;org.openhubframework.ri&lt;\/groupId&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;artifactId&gt;ri-openhub&lt;\/artifactId&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;version&gt;1.0.0-SNAPSHOT&lt;\/version&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;name&gt;OpenHub - Reference implementation&lt;\/name&gt;\r\n\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;packaging&gt;pom&lt;\/packaging&gt;\r\n\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;parent&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;groupId&gt;org.openhubframework&lt;\/groupId&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;artifactId&gt;openhub&lt;\/artifactId&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;version&gt;2.0.0.RC1&lt;\/version&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/parent&gt;\r\n\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;modules&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;module&gt;openhub-ext&lt;\/module&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;module&gt;openhub-war&lt;\/module&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/modules&gt;\r\n...\r\n<\/pre>\n<div class=\"code panel pdl conf-macro output-block\"><\/div>\n<p>We recommend to create the following project structure with at least two modules:<\/p>\n<ul>\n<li><em>project<\/em> &#8211; module for project specific routes and business logic<\/li>\n<li><em>war<\/em> &#8211; module that builds this project and OpenHub framework together<\/li>\n<\/ul>\n<p>We have created <a class=\"external-link\" href=\"https:\/\/github.com\/OpenWiseSolutions\/openhub-ri\" rel=\"nofollow\">reference project implementation<\/a> with basic integration scenarious.<\/p>\n<p><figure id=\"attachment_69253\" aria-describedby=\"caption-attachment-69253\" style=\"width: 620px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2017\/09\/OpenHub_project_structure.png\"><img decoding=\"async\" class=\"wp-image-69253 size-large\" title=\"Project structure\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2017\/09\/OpenHub_project_structure-670x1024.png\" alt=\"OpenHub's reference project structure\" width=\"620\" height=\"948\" \/><\/a><figcaption id=\"caption-attachment-69253\" class=\"wp-caption-text\">Project structure<\/figcaption><\/figure><\/p>\n<h2>Sources<\/h2>\n<ul>\n<li>Web: <a class=\"external-link\" href=\"http:\/\/www.openhubframework.org\/\" rel=\"nofollow\">www.openhubframework.org<\/a><\/li>\n<li>Wiki:\u00a0<a class=\"external-link\" href=\"https:\/\/openhubframework.atlassian.net\/\" rel=\"nofollow\">https:\/\/openhubframework.atlassian.net<\/a><\/li>\n<li>GitHub OpenHub:\u00a0<a class=\"external-link\" href=\"https:\/\/github.com\/OpenWiseSolutions\/openhub-framework\" rel=\"nofollow\">https:\/\/github.com\/OpenWiseSolutions\/openhub-framework<\/a><\/li>\n<li>GitHub OpenHub-RI:\u00a0<a class=\"external-link\" href=\"https:\/\/github.com\/OpenWiseSolutions\/openhub-ri\" rel=\"nofollow\">https:\/\/github.com\/OpenWiseSolutions\/openhub-ri<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This article introduces OpenHub framework\u00a0&#8211; new open-source integration solution\u00a0based on Apache Camel. The article responds to questions why you should care about another integration framework, what are strong\/weak properties and how to start a new project with OpenHub. OpenHub framework is Apache Camel, but improved &#8230; You can of course use only Apache Camel but &hellip;<\/p>\n","protected":false},"author":4638,"featured_media":112,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[357,119,1201,680],"class_list":["post-69144","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-apache-camel","tag-architecture","tag-enterprise-java","tag-integration-patterns"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Introducing OpenHub framework - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"Article introduces OpenHub framework\u00a0- new open-source integration solution\u00a0based on Apache Camel.\" \/>\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\/2017\/10\/introducing-openhub-framework.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing OpenHub framework - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"Article introduces OpenHub framework\u00a0- new open-source integration solution\u00a0based on Apache Camel.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.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=\"2017-10-02T22:00:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-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=\"Petr Juza\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@pjuza\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Petr Juza\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2017\\\/10\\\/introducing-openhub-framework.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2017\\\/10\\\/introducing-openhub-framework.html\"},\"author\":{\"name\":\"Petr Juza\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/dc31ceadb3725979f81122ca1d1b2f3a\"},\"headline\":\"Introducing OpenHub framework\",\"datePublished\":\"2017-10-02T22:00:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2017\\\/10\\\/introducing-openhub-framework.html\"},\"wordCount\":758,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2017\\\/10\\\/introducing-openhub-framework.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"keywords\":[\"Apache Camel\",\"Architecture\",\"Enterprise Java\",\"Integration Patterns\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2017\\\/10\\\/introducing-openhub-framework.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2017\\\/10\\\/introducing-openhub-framework.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2017\\\/10\\\/introducing-openhub-framework.html\",\"name\":\"Introducing OpenHub framework - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2017\\\/10\\\/introducing-openhub-framework.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2017\\\/10\\\/introducing-openhub-framework.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"datePublished\":\"2017-10-02T22:00:55+00:00\",\"description\":\"Article introduces OpenHub framework\u00a0- new open-source integration solution\u00a0based on Apache Camel.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2017\\\/10\\\/introducing-openhub-framework.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2017\\\/10\\\/introducing-openhub-framework.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2017\\\/10\\\/introducing-openhub-framework.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"width\":150,\"height\":150,\"caption\":\"java-interview-questions-answers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2017\\\/10\\\/introducing-openhub-framework.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\":\"Introducing OpenHub framework\"}]},{\"@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\\\/dc31ceadb3725979f81122ca1d1b2f3a\",\"name\":\"Petr Juza\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7f3af4b50b3ab5f895d0634ffe197b112710a692bfe0f1b6397c4bd2b5dba228?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7f3af4b50b3ab5f895d0634ffe197b112710a692bfe0f1b6397c4bd2b5dba228?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7f3af4b50b3ab5f895d0634ffe197b112710a692bfe0f1b6397c4bd2b5dba228?s=96&d=mm&r=g\",\"caption\":\"Petr Juza\"},\"description\":\"Over 12 years of proven experience in Java and integration development. He's part of group of experienced profesionals in OpenWise Solution company focusing on making products and software for customers. He's Java and integration enthusiast. He's co-organizer of many developer meetups at Czech republic. He has been writing popular Java blog for several years.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/petrjuza\\\/ \",\"https:\\\/\\\/x.com\\\/pjuza\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/petr-juza\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Introducing OpenHub framework - Java Code Geeks","description":"Article introduces OpenHub framework\u00a0- new open-source integration solution\u00a0based on Apache Camel.","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\/2017\/10\/introducing-openhub-framework.html","og_locale":"en_US","og_type":"article","og_title":"Introducing OpenHub framework - Java Code Geeks","og_description":"Article introduces OpenHub framework\u00a0- new open-source integration solution\u00a0based on Apache Camel.","og_url":"https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2017-10-02T22:00:55+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","type":"image\/jpeg"}],"author":"Petr Juza","twitter_card":"summary_large_image","twitter_creator":"@pjuza","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Petr Juza","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.html"},"author":{"name":"Petr Juza","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/dc31ceadb3725979f81122ca1d1b2f3a"},"headline":"Introducing OpenHub framework","datePublished":"2017-10-02T22:00:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.html"},"wordCount":758,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","keywords":["Apache Camel","Architecture","Enterprise Java","Integration Patterns"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.html","url":"https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.html","name":"Introducing OpenHub framework - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","datePublished":"2017-10-02T22:00:55+00:00","description":"Article introduces OpenHub framework\u00a0- new open-source integration solution\u00a0based on Apache Camel.","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","width":150,"height":150,"caption":"java-interview-questions-answers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2017\/10\/introducing-openhub-framework.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":"Introducing OpenHub framework"}]},{"@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\/dc31ceadb3725979f81122ca1d1b2f3a","name":"Petr Juza","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/7f3af4b50b3ab5f895d0634ffe197b112710a692bfe0f1b6397c4bd2b5dba228?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/7f3af4b50b3ab5f895d0634ffe197b112710a692bfe0f1b6397c4bd2b5dba228?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7f3af4b50b3ab5f895d0634ffe197b112710a692bfe0f1b6397c4bd2b5dba228?s=96&d=mm&r=g","caption":"Petr Juza"},"description":"Over 12 years of proven experience in Java and integration development. He's part of group of experienced profesionals in OpenWise Solution company focusing on making products and software for customers. He's Java and integration enthusiast. He's co-organizer of many developer meetups at Czech republic. He has been writing popular Java blog for several years.","sameAs":["https:\/\/www.linkedin.com\/in\/petrjuza\/ ","https:\/\/x.com\/pjuza"],"url":"https:\/\/www.javacodegeeks.com\/author\/petr-juza"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/69144","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\/4638"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=69144"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/69144\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/112"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=69144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=69144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=69144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}