SAP Research just released a new Spring Roo add-on to create SAP NetWeaver Cloud applications. This add-on allows developers to very rapidly create Java applications and deploy them on the NetWeaver Cloud. I blogged about SAP Research’s work earlier but the code was only released yesterday on github and I immediately wanted to try it out. This add-on is the first contribution of SAP NetWeaver Cloud Labs [which looks to be very promising and will provide developers with some extremely helpful tools].
What does the new Spring Roo provide developers?
“Spring Roo is a Rapid Application Development (RAD) framework maintained by SpringSource. We have created add-ons for Roo to make it easy and comfortable to use Roo with the SAP NetWeaver Cloud platform. Use Roo to create a basic web application and deploy it to the SAP NetWeaver Cloud in minutes. Roo generates 100% pure Java code, packaged as a standard Maven project, so it is easy to handle and extend. Import it in your favorite IDE like Eclipse and start extending it, or write a mobile app connecting to the REST interfaces to your data, that Roo can automatically create for you. Try it out, and learn how Roo can help you kick starting your ideas.” [SOURCE]
Using the Spring Roo add-on for SAP NetWeaver Cloud
I then tried the simple application that is described in the Roo “Getting Started” guide.
I had to some maven hacking to deal with missing / unavailable pom files.
Note: Be prepared to wait a while maven downloads the necessary jar files – there are a lot.
I ended up having a difficult time getting this application running. GWT never worked and I was getting frustrated. I decided to try the application described in the NW Cloud Roo Add-on page. This tutorial worked better and I got my app up and running in Tomcat without any problem. I called the two Roo commands to deal with NWCloud JPA and deployment, filled out my nwcloud.properties file as described, and then tried to deploy my war file to the cloud. I kept on getting network errors. I set my proxy in my maven settings.xml file but it wasn’t enough. It was only when I set the sdk.proxy property in the nwcloud.properties file that I could successfully deploy my app.
The app is running in the NetWeaver cloud – without starting any IDE or coding a single line of code. All that in less then 15 lines of Roo code and 4 maven commands
Why is this important?
Spring Roo allows you very rapidly create a skeleton application that you can change in your favorite IDE. The cool thing is the amazing speed that you can create such apps – within a matter of minutes you can have a functioning application. This is what Björn Goerke was taking about in last night’s keynote. This means that developers can concentrate on the business logic rather than doing rudimentary coding.
Some readers might be thinking – “So what. There are tons of code generators out there.” Spring Roo is different, because of its association with Spring Source and the amazing number of add-ons available.
What Spring Roo already provides
With Roo, you can add jms, logging or email functionality / configuration via the command line. You can create complex data objects and their relations. With the add-on feature, it is possible that the community provides additional functionality. For example, there are add-ons for jQuery, Spock or Vaadin. You can also add REST/ JSON interfaces via add-on. One of my next steps is going to be to test which of these Roo add-ons work on the NetWeaver Cloud platform.
What sort of Roo-related functionality I’d like to see
Here are some ideas:
- SAPUI5 support: With one command, the UI5 style could be added to an application.
- Business object support: If you are creating a UI wouldn’t be great to just add the business object “customer” to your application. The UI is created using a standard UI with the necessary connections. You could then configure whether this is associated with an OnPremise system or an OnDemand environment.
- Analytics: Use the same logic to create analytics – diagram type, values, etc. Maybe even select the KPI which should be used.
- HANA support: Use HANA as the JPA target
- Integration: Connect to external systems (for example Financials OnDemand)
- Monitoring / performance measures: The Lab page also describes an Operations Cockpit to monitor apps – this functionality could also be added via Roo
- Services: The service concept is central to the idea of SAP NetWeaver Cloud. Roo could add the plumbing to use special services.
- SAP partners could also provide additional functionality for their own applications.
- Since Roo is a command line tool, business users could create prototypes without the need for developers to code anything.
I don’t expect Roo to be able to meet the requirements for every application that is planned for SAP NetWeaver Cloud. However, it has the potential to make the lives of developers much easier. For developers interested in the platform, any assistance to make the transition is useful. Furthermore, Spring Roo is widely used in the SpringSource developer community which also makes NetWeaver Cloud more attractive for those developers as well. If SAP can add more business-related content (“add business partner”, “connect business partner to contract”, etc), then Roo could be critical in the success of the platform.