Module 2 - Extending your Solution in Code

Up to now, the only tool we have used to build the Lunch Catering solution has been Innovation Studio. It's pretty powerful, but one of the great features of Innovation Suite is that developers who are handy with Java or Javascript can fully use those tools to extend applications, and even create add-ons that can be used by others in Innovation Studio without writing code themselves. In this set of lessons, we will create a Library, called meal-program-lib,  that will be used to deploy custom Java and Javascript for our solution. This is not intended to replace the documentation found at Extending the platform using Java and JavaScript; rather, it illustrates some of these techniques in the context of this tutorial.


You may be wondering about whether this Module is for you, or not. This is a fair question. Up to now, there have been few assumptions about the technical skill or experience needed to complete the tutorial. However, since we are going to be working with Java and JavaScript code here, and working with standard frameworks such as Jackson (for JSON serialization) and AngularJS (for client-side JavaScript), that is not true any longer. The assumption here is that you are a developer that knows, or is learning these skills, and is interested in learning how to apply them to augment Innovation Suite applications.

The goal of this tutorial, after all, is not to teach you how to code (there are many great resources out there for that). Rather, it is meant to help you, as someone who already has coding skills (from moderate to export) get a heads-start in how to use the Innovation Suite SDK in particular. For example, you will need to know about the standard library we provide, the API documentation, deployment tools you will use, and so on. We will also see examples of services written in Java that are designed to go hand-in-glove with the particular Lunch Catering solution we are building so you can hopefully get some insights about how to make these two kinds of development work together.

Before starting this module, you will need to build a lunch ordering application as described in Module 1 of this tutorial. It is highly recommended that you go through the exercise of building it yourself using Innovation Studio, at least through the end of Module 1.

If you would like to skip this, or want to be sure you are starting with a complete version of the application, you also install a pre-built version by using the following steps:

  1. If you already have an application in your sandbox called com.example.lunchtutorial, you should uninstall it from your workspace (of course, you can use Create Install Package first to keep a snapshot of it before you do this if you like). This is to make sure that you don't have a mix of definitions, because installing an application does not remove any previous definitions.
  2. Download com.example.lunchtutorial-5.0.0-INSTALL-with Menu -  this includes a set of sample data and an enhanced view for ordering from a photo-based menu.
  3. Use the Install button from the Workspace view to install this application.


Rather than lead you step-by-step in building the code, the approach here will be to start from a fully-functional set of source code. We will build and deploy it together and you will integrate it into your application. Each area of functionality will be highlighted and explained. If you are fairly new to these technologies, reviewing this material may be a little bit mysterious, but the techniques involved are standard ones and you can learn a lot of useful concepts here that can be applied to any Java or JavaScript development.

NOTE: since the provided sample code will refer to the specific definitions in Lunch Catering, running it requires having completed the earlier modules of this tutorial.

  • The first set of lessons will be about creating Java-based services,exposed with their own REST-based interfaces, and/or Service Actions that show up in the Process Designer.
  • The next set will be about working with JavaScript and AngularJS to extend the User Interface with custom View Components and custom Actions, that will show up in the View Designer.

That being said, let's get started.

Was this page helpful? Yes No Submitting... Thank you