Part I of this blog series covered the specifics of building our lightweight Java EE application - Ticker Tracker. This part will focus on the following aspects


  • Leveraging NetBeans IDE while working with Oracle Developer Cloud service. This includes
    • Setting up the Team Server plugin
    • Leveraging it to interact with Developer Cloud service instance from within your IDE
  • Priming Developer Cloud service for Continuous Deployment





Oracle Developer Cloud Service is a cloud-based software development Platform as a Service (PaaS) and a hosted environment for your application development infrastructure. It provides an open source standards-based solution to develop, collaborate, build, and deploy applications within Oracle Cloud. It provides a number of services such as


  • Source code management
  • Build Automation
  • Continuous Integration
  • Issue tracking
  • Code review
  • Deployment automation
  • Agile process management
  • Wiki
  • Activity Stream




Let’s dive into the details now…


Using the Team Server plugin with NetBeans IDE

Leveraging NetBeans Team Server plugin along with the automated build & deploy features in Developer Cloud (explained in sections below) lets you stay within your IDE and enjoy a seamless development experience. Using NetBeans IDE to Create an Oracle Developer Cloud Service Project is a great tutorial to understand the details



Download & setup the Team Server plugin in NetBeans IDE

This is a fairly straightforward process and you can refer to the Installing the Team Server Plugin for NetBeans IDE section from Using NetBeans IDE to Create an Oracle Developer Cloud Service Project tutorial to get this up and running


Importing the project into NetBeans


This section provides a quick outline of the steps involved





You should see a similar project structure in your IDE



Configure the Oracle Developer Cloud instance within NetBeans

The Adding the Team Server for Your Oracle Cloud Developer Service Instance to Your NetBeans IDE Instance section provides clear instructions for these steps


Creating the project in Oracle Developer Cloud

The steps involved are outlined below


Use the Team pane, select the Developer Cloud instance and choose New Project



Enter the details such as project name, description etc.



In this step, we will link our Ticker Tracker application repository (source) to the project which is being created








Log into your Oracle Developer Cloud Service instance to explore the new project





Push your project to the Oracle Developer Cloud Git repository

What follows is a series of Git related steps which are applicable when working with any such Git repository. In this case, we are working against the repository which was automatically setup for us when we initially created the project in Developer Cloud Service





Since we already linked our project to the Git repository in the project, all that’s required is a Git > Remote > Push to Upstream, without having to explicitly provide Git repo information like location, credentials etc.





Check your Oracle Developer Cloud service instance to ensure that the source code is now present in the master branch



Configure Oracle Developer Cloud


Configure build job

We will need to configure the build job in Developer Cloud. It will take care of the following

  • Invoking our Maven build based off the source in out Git repo
  • Prepare our Zip artifact which is a deployable artifact compliant with the Application Container Cloud

All in all, this is a traditional Build configuration which you can read about in the documentation here. The components of the build configuration have been highlighted below




Note: The business logic in the Ticker Tracker application itself does not have any dependency on JDK 8 and can be compiled with JDK 7. In case you’re wondering why we need JDK 8 - it is because Wildfly Swarm build plugin is dependent on the same, hence the build process will require it as well. The good part is that Oracle Developer Cloud Service makes this configurable and provides you the flexibility


Select the project Git repository as the Source for the build process




Configure your build process to trigger on commits to your Git repository (read more in the Configuring Build Triggers section). This is important from a Continuous Integration perspective






A note on ‘cloud-ready’ package

Before you explore the next set of steps, it would be good to recap the fact that, in the context of Application Container Cloud, a valid deployment artifact is a ZIP file which consists of not only the (uber) JAR, plus other metadata files such as manifest.json, deployment.json etc


Developer Cloud build configuration invokes the maven build which creates the Uber JAR (thanks to the Wildfly Maven plugin), but the Application Container Cloud compliant ZIP is created by including an additional Build Step (highlighted below)






zip -j target/ target/ticker-tracker-swarm.jar manifest.json



The above shell command is executed after the Maven build and it packages the Uber JAR along with the mandatory deployment descriptor (manifest.json) as a ZIP file


Configure & initiate (manual) deployment


In addition to automating your build process (as explained previously), Developer Cloud service also enables you to deploy your Java applications to Application Container Cloud (details are available in the product documentation)


Initiate the process by navigating to Deploy > New Configuration




Enter the details corresponding to your Application Container cloud instance

Note: You can deploy to any instance of Application Container Cloud (irrespective of whether or not it is in the same identity domain as the Developer Cloud service




Complete the deployment configuration and start the process






At the same time, log into Application Container Cloud service and look at the Applications section and verify that the deployment is in fact in flight





The below screenshot depicts a successfully completed deployment process



Post deployment completion, you can also explore further details about the application (in Application Container Cloud) by clicking on the application name




You might also want to refer this tutorial - Creating a Project from a Template and Deploying It to Oracle Application Container Cloud Service


But we need Continuous Deployment !


So far, you were able to

  • configure the NetBeans project along with the Team Server plugin
  • push the project to Oracle DevCS git repository
  • configure the build and initiate it manually


Now, we’ll look the final piece of the puzzle – Continuous Deployment from Developer Cloud to Application Container Cloud


Back to the deployment configuration

Your post build process should be configured to trigger automatic deployment to Application Container Cloud (details available here). You can tweak the existing deployment configuration to weave the CI/CD magic!



Ensure that you check the Automatic radio button. In this scenario, we have opted to deploy stable builds only




Make a code change, commit, push & monitor build from your IDE

After you initiate Push to Upstream (as demonstrated previously), and refresh the application view on your Team view, you will notice (after some time) that the build process has been automatically kicked off (thanks to the configuration we just made)



You can track the build progress in real time from within your IDE






The same would reflect in your Developer Cloud console as well (as expected)




Quick recap..


Since this post had a lot to do with configuration (than code!) it’s easy to lose track. Here is a quick summary of what we did

  • Bootstrapped our project, application (and its source) within Developer Cloud service using the Team Server plugin for NetBeans – this served as the foundation for handling other life cycle activities related to our application
  • Configured Developer Cloud Service
    • Build process
    • Deployment process
    • Tweaked both to enable CI/CD



This marks the end of this 2-part blog series. In case you stumbled onto this post directly, here is the link for the first part. There is obviously more to Oracle Developer Cloud (as well as Application Container Cloud) than what has been covered via this blog post and the official product documentation is probably the best place to start digging in further.


**The views expressed in this post are my own and do not necessarily reflect the views of Oracle.