{"id":7142,"date":"2014-06-19T05:55:04","date_gmt":"2014-06-19T12:55:04","guid":{"rendered":"http:\/\/localhost\/exoblog\/?p=7142"},"modified":"2023-06-05T16:49:21","modified_gmt":"2023-06-05T14:49:21","slug":"install-exo-platform-ide-start-developing-gadgets-rest-services","status":"publish","type":"post","link":"https:\/\/www.exoplatform.com\/blog\/install-exo-platform-ide-start-developing-gadgets-rest-services\/","title":{"rendered":"The Great Guide to Installing eXo Platform IDE and Developing Gadgets with REST Services"},"content":{"rendered":"<h2>Overview of the eXo Platform IDE<\/h2>\n<p>eXo IDE is an online development environment inside eXo Platform, with a friendly interface developer that can easily code, deploy and run applications directly from their Platform, from writing Javascript, CSS, XML to deploying REST Services, Data Object.<\/p>\n<p>eXo IDE offers:<\/p>\n<ul>\n<li>Remote File System through the Virtual File System, including Browsing, File Locking, File Searching and Versioning<\/li>\n<li>Code Editor with syntax highlighting for many popular languages and advanced features, such as Code Auto-complete, Code Outline and WYSIWYG Editor for HTML<\/li>\n<li>Multiple programming and descriptive languages support, such as JavaScript, HTML, XML, CSS, Groovy, and more<\/li>\n<li>Tools for developing client side applications including technologies such as Netvibes Widgets, Google Gadgets and Groovy Templates<\/li>\n<li>Development of server-side applications, running, and interaction with the client side via REST Service<\/li>\n<\/ul>\n<p>This tutorial teaches you how to install the IDE extension from the Platform Enterprise Edition bundle, begin with a basic REST services, then an advance REST services from Forum\u2019s services methods.<\/p>\n<p><!--more--><\/p>\n<p><b>Requirement:<\/b><br \/>\n&#8211; Platform 4 Enterprise Edition<\/p>\n<h2>Installing the eXo Platform IDE<\/h2>\n<p>First, let\u2019s install IDE extension with comand <span class=\"navCode\">.\/extension.sh -i ide<\/span> (in Linux, Mac) or <span class=\"navCode\">extension.bat -i ide<\/span> (in Windows).<\/p>\n<pre class=\"lang:default decode:true \">annb:platform-4&gt; .\/extension.sh -i ide\n # ===============================\n # eXo Platform Extensions Manager\n # ===============================\n\nInstalling ide extension ...\n     [copy] Copying 6 files to \/home\/annb\/platform-4\/lib\n     [copy] Copying \/home\/annb\/platform-4\/extensions\/ide\/lib\/exo-ide-extension-chromattic-server-1.3.x-SNAPSHOT.jar to \/home\/annb\/platform-4\/lib\/exo-ide-extension-chromattic-server-1.3.x-SNAPSHOT.jar\n...\n...\n     [copy] Copying \/home\/annb\/platform-4\/extensions\/ide\/webapps\/ide-extension.war to \/home\/annb\/platform-4\/webapps\/ide-extension.war\nDone.\n\n # ===============================\n # Extension ide installed.\n # ===============================\nannb:platform-4&gt;<\/pre>\n<p>Then start Platform with <span class=\"navCode\">.\/start_eXo.sh<\/span>, in top menu Administration &gt; IDE is installed<\/p>\n<pre class=\"lang:default decode:true \">annb:platform-4&gt; .\/start_eXo.sh<\/pre>\n<p><a href=\"\/blog\/wp-content\/uploads\/2014\/06\/01-IDE-Platform.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-7143\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/01-IDE-Platform.png\" alt=\"01-IDE-Platform\" width=\"650\"><\/a><\/p>\n<h2>Basic Actions with REST services<\/h2>\n<p>Inside the IDE interface, when you first make a new REST service, a new untitled file groovy script \u201cgrs\u201d will create a hello world sample code<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2014\/06\/02-Rest-Services.png\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-7144\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/02-Rest-Services.png\" alt=\"02-Rest-Services\" width=\"650\" srcset=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/02-Rest-Services.png 845w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/02-Rest-Services-300x168.png 300w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/02-Rest-Services-768x429.png 768w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/02-Rest-Services-720x402.png 720w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/02-Rest-Services-500x279.png 500w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/02-Rest-Services-360x201.png 360w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/02-Rest-Services-200x112.png 200w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/02-Rest-Services-100x56.png 100w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/02-Rest-Services-54x30.png 54w\" sizes=\"(max-width: 845px) 100vw, 845px\" \/><\/a><\/p>\n<pre class=\"lang:default decode:true \">@GET\n@Path(\"helloworld\/{name}\")\npublic String hello(@PathParam(\"name\") String name) {\n   return \"Hello my \" + name\n}<\/pre>\n<p>Then you go to <span class=\"navCode\">Run &gt; Validate<\/span><\/p>\n<p>Output displays a successful validation<\/p>\n<p><span class=\"navCode\">Run &gt; Deploy<\/span> to deploy directly in Platform\u2019s server with my <span class=\"navCode\">localhost:8080<\/span> and call parameter \u201c<strong>eXo<\/strong>\u201d, I can execute REST service <i>\/rest\/my-service\/helloworld\/eXo<\/i><\/p>\n<p><a href=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/03-Run-Validate-Deploy.png\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-7145\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/03-Run-Validate-Deploy.png\" alt=\"03-Run-Validate-Deploy\" width=\"329\" srcset=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/03-Run-Validate-Deploy.png 329w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/03-Run-Validate-Deploy-300x155.png 300w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/03-Run-Validate-Deploy-200x103.png 200w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/03-Run-Validate-Deploy-100x52.png 100w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/03-Run-Validate-Deploy-58x30.png 58w\" sizes=\"(max-width: 329px) 100vw, 329px\" \/><\/a><\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2014\/06\/04-HelloWorld.png\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-7146\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/04-HelloWorld.png\" alt=\"04-HelloWorld\" width=\"502\"><\/a><\/p>\n<p>We can go deeper with REST service. Here in advance sample, I use mainly Forum source codes to display which user is online.<\/p>\n<p>You copy this code into your current groovy script.<\/p>\n<p>&#8211; Who is online sample:<\/p>\n<pre class=\"lang:default decode:true \">import org.exoplatform.forum.service.ForumService;\nimport org.exoplatform.commons.utils.CommonsUtils;\n\n\u2026\n\u2026\n\n  @GET\n  @Path(\"useronline\")\n  public String whoisonline() {\n    ForumService forumService = CommonsUtils.getService(ForumService.class);\n    String resultUserOnline = \"\";   \n    List&lt;String&gt; allOnlineUsers = forumService.getOnlineUsers();\n    for (String user : allOnlineUsers){\n     resultUserOnline = user + \", \" +resultUserOnline;\n    }   \n    return resultUserOnline;\n  }<\/pre>\n<p>For the full source, you can use the links below in reference: <a href=\"https:\/\/github.com\/exo-addons\/resource-center\/blob\/master\/ide-rest-gadget\/basic\/sample.grs\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/exo-addons\/resource-center\/blob\/master\/ide-rest-gadget\/basic\/sample.grs<\/a><\/p>\n<p>For more detail about the method to get online users, internal services, you can search in github sources: <a href=\"https:\/\/github.com\/exoplatform\/forum\/\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/exoplatform\/forum\/<\/a><\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2014\/06\/05-Code.png\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-7147\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/05-Code.png\" alt=\"05-Code\" width=\"650\"><\/a><\/p>\n<p><span class=\"navCode\">Save &gt; Run &gt; Validate<\/span><\/p>\n<p><span class=\"navCode\">Run &gt; Deploy<\/span><\/p>\n<p>Login with 2 users: root and john in two different browsers<\/p>\n<p>Then call REST: \/rest\/my-service\/useronline<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2014\/06\/06-Users.png\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-7148\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/06-Users.png\" alt=\"06-Users\" width=\"650\" srcset=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/06-Users.png 749w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/06-Users-300x117.png 300w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/06-Users-720x281.png 720w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/06-Users-500x195.png 500w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/06-Users-360x140.png 360w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/06-Users-200x78.png 200w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/06-Users-100x39.png 100w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/06-Users-70x27.png 70w\" sizes=\"(max-width: 749px) 100vw, 749px\" \/><\/a><\/p>\n<h2>Gadgets and REST services with the eXo Platform IDE<\/h2>\n<p>In this example, you will learn how to use a REST service (deployed with eXo IDE) from a gadget: create, deploy, run, import, and finally display it on a home page.<\/p>\n<p>Source files: <a href=\"https:\/\/github.com\/exo-addons\/resource-center\/tree\/master\/ide-rest-gadget\/gadget\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/exo-addons\/resource-center\/tree\/master\/ide-rest-gadget\/gadget<\/a><\/p>\n<p><b><span style=\"text-decoration: underline;\">1) Create a hierarchy folder and copy these files:<\/span><\/b><\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2014\/06\/07-folder.png\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-7149\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/07-folder.png\" alt=\"07-folder\" width=\"585\" srcset=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/07-folder.png 585w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/07-folder-300x196.png 300w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/07-folder-500x326.png 500w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/07-folder-360x236.png 360w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/07-folder-200x131.png 200w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/07-folder-100x65.png 100w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/07-folder-46x30.png 46w\" sizes=\"(max-width: 585px) 100vw, 585px\" \/><\/a><\/p>\n<p>Right click on <span class=\"navCode\">dev-monit<\/span> to create a subfolder name <span class=\"navCode\">advance_tutorial<\/span><\/p>\n<p>In folder <span class=\"navCode\">advance_tutorial<\/span>, create sub folders <span class=\"navCode\">js<\/span> (contains javascript), <span class=\"navCode\">style<\/span> (contains CSS) then create Google Gadget, REST Service, CSS and Javascript files.<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2014\/06\/08-js-style.png\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-7150\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/08-js-style.png\" alt=\"08-js-style\" width=\"650\" srcset=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/08-js-style.png 754w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/08-js-style-300x158.png 300w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/08-js-style-720x378.png 720w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/08-js-style-500x263.png 500w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/08-js-style-360x189.png 360w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/08-js-style-200x105.png 200w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/08-js-style-100x53.png 100w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/08-js-style-57x30.png 57w\" sizes=\"(max-width: 754px) 100vw, 754px\" \/><\/a><\/p>\n<p><b>Hierarchy presentation:<\/b><\/p>\n<p>&#8211; <span class=\"navCode\">advance_tutorial<\/span><br \/>\n&#8212; <a href=\"https:\/\/github.com\/exo-addons\/resource-center\/tree\/master\/ide-rest-gadget\/gadget\/js\" target=\"_blank\" rel=\"noopener\">js<\/a><br \/>\n&#8212; <a href=\"https:\/\/github.com\/exo-addons\/resource-center\/blob\/master\/ide-rest-gadget\/gadget\/js\/jquery.simpletip-1.3.1.min.js\" target=\"_blank\" rel=\"noopener\">jquery.simpletip-1.3.1.min.js<\/a><br \/>\n&#8212; <a href=\"https:\/\/github.com\/exo-addons\/resource-center\/tree\/master\/ide-rest-gadget\/gadget\/style\" target=\"_blank\" rel=\"noopener\">style<\/a><br \/>\n&#8212; <a href=\"https:\/\/github.com\/exo-addons\/resource-center\/blob\/master\/ide-rest-gadget\/gadget\/style\/online.css\" target=\"_blank\" rel=\"noopener\">online.css<\/a><br \/>\n&#8212; <a href=\"https:\/\/github.com\/exo-addons\/resource-center\/blob\/master\/ide-rest-gadget\/gadget\/OnlineGadget.xml\" target=\"_blank\" rel=\"noopener\">OnlineGadget.xml<\/a><br \/>\n&#8212; <a href=\"https:\/\/github.com\/exo-addons\/resource-center\/blob\/master\/ide-rest-gadget\/gadget\/WhosOnlineRestServices.grs\" target=\"_blank\" rel=\"noopener\">WhosOnlineRestServices.grs<\/a> (groovy script)<\/p>\n<p>2) Run, validate and deploy your <span class=\"navCode\">WhosOnlineRestServices<\/span> and <span class=\"navCode\">OnlineGadget<\/span><\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2014\/06\/09-deploy-successful.png\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-7151\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/09-deploy-successful.png\" alt=\"09-deploy-successful\" width=\"650\" srcset=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/09-deploy-successful.png 789w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/09-deploy-successful-300x167.png 300w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/09-deploy-successful-768x428.png 768w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/09-deploy-successful-720x402.png 720w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/09-deploy-successful-500x279.png 500w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/09-deploy-successful-360x201.png 360w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/09-deploy-successful-200x112.png 200w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/09-deploy-successful-100x56.png 100w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/09-deploy-successful-54x30.png 54w\" sizes=\"(max-width: 789px) 100vw, 789px\" \/><\/a><\/p>\n<p><b>Console output<\/b><\/p>\n<p><span class=\"navCode\">WhosOnlineRestServices<\/span><\/p>\n<pre class=\"lang:default decode:true \">[INFO] WhosOnlineRestServices.grs validated successfully.\n\n[INFO] \/rest\/private\/jcr\/repository\/dev-monit\/advance_tutorial\/WhosOnlineRestServices.grs deployed successfully.<\/pre>\n<p><span class=\"navCode\">OnlineGadget<\/span><\/p>\n<pre class=\"lang:default decode:true \">[INFO] \/rest\/private\/ide\/gadget\/deploy?gadgetURL=http%3A%2F%2Flocalhost%3A8080%2Frest%2Fprivate%2Fjcr%2Frepository%2Fdev-monit%2Fadvance_tutorial%2FOnlineGadget.xml&amp;privateContext=%2Frest%2Fprivate&amp;publicContext=%2Frest deployed successfully.<\/pre>\n<p>3) Import your gadget: Administration &gt; Application &gt; Import Applications<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2014\/06\/10-import-app.png\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-7152\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/10-import-app.png\" alt=\"10-import-app\" width=\"650\"><\/a><\/p>\n<p>4) Add your gadget on the homepage: Go to home page &gt; Edit &gt; Page &gt; Edit layout<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2014\/06\/11-edit-layout.png\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-7153\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/11-edit-layout.png\" alt=\"11-edit-layout\" width=\"416\"><\/a><\/p>\n<p>Add your \u201cWho\u2019s Online Gadget at the top,\u201d then save it<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2014\/06\/12-add-gadget.png\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-7154\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/12-add-gadget.png\" alt=\"12-add-gadget\" width=\"650\"><\/a><\/p>\n<p>5) After that, your gadget is displayed in the home page<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2014\/06\/13-home-display.png\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-7155\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/13-home-display.png\" alt=\"13-home-display\" width=\"382\" srcset=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/13-home-display.png 382w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/13-home-display-300x156.png 300w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/13-home-display-360x188.png 360w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/13-home-display-200x104.png 200w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/13-home-display-100x52.png 100w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/13-home-display-58x30.png 58w\" sizes=\"(max-width: 382px) 100vw, 382px\" \/><\/a><\/p>\n<p>6) Invite some users and accept connection!<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2014\/06\/14-invite-confirm.png\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-7156\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/14-invite-confirm.png\" alt=\"14-invite-confirm\" width=\"650\" srcset=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/14-invite-confirm.png 793w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/14-invite-confirm-300x147.png 300w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/14-invite-confirm-768x377.png 768w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/14-invite-confirm-720x353.png 720w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/14-invite-confirm-500x245.png 500w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/14-invite-confirm-360x177.png 360w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/14-invite-confirm-200x98.png 200w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/14-invite-confirm-100x49.png 100w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/14-invite-confirm-61x30.png 61w\" sizes=\"(max-width: 793px) 100vw, 793px\" \/><\/a><\/p>\n<p>7) Your gadget will display your friends\u2019 connections when they are online<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2014\/06\/15-gadget-display.png\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-7157\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/15-gadget-display.png\" alt=\"15-gadget-display\" width=\"349\" srcset=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/15-gadget-display.png 349w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/15-gadget-display-300x243.png 300w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/15-gadget-display-291x236.png 291w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/15-gadget-display-162x131.png 162w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/15-gadget-display-100x81.png 100w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/15-gadget-display-37x30.png 37w\" sizes=\"(max-width: 349px) 100vw, 349px\" \/><\/a><\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2014\/06\/16-gadget-display.png\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-7158\" src=\"\/blog\/wp-content\/uploads\/2014\/06\/16-gadget-display.png\" alt=\"16-gadget-display\" width=\"359\" srcset=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/16-gadget-display.png 359w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/16-gadget-display-300x236.png 300w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/16-gadget-display-167x131.png 167w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/16-gadget-display-100x79.png 100w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/06\/16-gadget-display-38x30.png 38w\" sizes=\"(max-width: 359px) 100vw, 359px\" \/><\/a><\/p>\n<p><b><span style=\"text-decoration: underline;\">References:<\/span><\/b><\/p>\n<p>&#8211; Download Platform 4: <a href=\"https:\/\/community.exoplatform.com\/portal\/dw\/\" target=\"_blank\" rel=\"noopener\">https:\/\/community.exoplatform.com<\/a> &gt; eXo Platform 4.0 &gt; Downloads<\/p>\n<p>&#8211; IDE documentation: <a href=\"https:\/\/docs.exoplatform.org\/\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.exoplatform.org\/<\/a><\/p>\n<p>&#8211; Forum sources: <a href=\"https:\/\/github.com\/exoplatform\/forum\/\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/exoplatform\/forum<\/a><\/p>\n<p>&#8211; For more resources on IDE, you can follow these guides:<br \/>\n&#8211; How to Build, Debug and Deploy Apps for Google App Engine with Cloud IDE<br \/>\n&#8211; <a href=\"https:\/\/www.exoplatform.com\/resource-center\/videos\/?utm_source=BlogEn&amp;utm_medium=Blog&amp;utm_campaign=Content&amp;utm_content=link\" target=\"_blank\" rel=\"noopener\">How to Build a Mashup of Twitter and Flickr Feeds Using eXo Cloud IDE<\/a><\/p>\n<p>&#8211; Full source of basic action: <a href=\"https:\/\/github.com\/exo-addons\/resource-center\/blob\/master\/ide-rest-gadget\/basic\/sample.grs\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/exo-addons\/resource-center\/blob\/master\/ide-rest-gadget\/basic\/sample.grs<\/a><\/p>\n<p>&#8211; Full source of gadget \u201cWho is online\u201d: <a href=\"https:\/\/github.com\/exo-addons\/resource-center\/tree\/master\/ide-rest-gadget\/gadget\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/exo-addons\/resource-center\/tree\/master\/ide-rest-gadget\/gadget<\/a><\/p>\n<p>&nbsp;<\/p>\n<p><b><a href=\"https:\/\/community.exoplatform.com\/portal\/dw\/\" target=\"_blank\" rel=\"noopener\">Join the eXo tribe<\/a> by registering for the community and get updates, tutorials, support, and access to the Platform and add-on downloads!<\/b><\/p>\n<p><!--begin adv-events--><\/p>\n<div class=\"adv-events\" style=\"background: #476fad; padding: 30px 20px; color: white; border-radius: 3px;\">\n<div class=\"media\">\n<div class=\"pull-right\"><a href=\"#\"><br \/>\n<img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-6587 alignright\" src=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2014\/02\/how-to-make-the-most-of-eXo-platform41.png\" alt=\"make-the-most-out-of-eXo-platform4\" width=\"161\" height=\"85\"><br \/>\n<\/a><\/div>\n<div class=\"media-body\">\n<h4 class=\"media-heading\">Make the most out of eXo Platform 4<\/h4>\n<p>Register to the next webinar and get a complete overview of what you can do with eXo Platform 4. <strong><a href=\"https:\/\/www.exoplatform.com\/contact-us\/?utm_source=BlogEn&amp;utm_medium=Blog&amp;utm_campaign=Content&amp;utm_content=link\n\">Reserve your seat now!<\/a><\/strong><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!--end adv-events--><\/p>\n","protected":false},"excerpt":{"rendered":"Overview of the eXo Platform IDE eXo IDE is an online development environment inside eXo Platform, with a friendly interface developer that can easily code, deploy and run applications directly from their Platform, from writing Javascript, CSS, XML to deploying REST Services, Data Object. eXo IDE offers: Remote File System through the Virtual File System, [&hellip;]","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[699],"tags":[],"lang":"en","translations":{"en":7142},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/posts\/7142"}],"collection":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/comments?post=7142"}],"version-history":[{"count":0,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/posts\/7142\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/media?parent=7142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/categories?post=7142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/tags?post=7142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}