Introducing JADS – A SAPUI5 Development Web Server
What is JADS
JADS is a by developers for developers light-weight web server designed to cater specifically for SAPUI5 development with OData proxying.
Background
I do quite a bit of work with SAPUI5/Fiori and web development and one of the challenges for every machine I work on is getting the environment setup – naturally every machine is slightly different so that can take some time but the basics never change – you will always need to:
– Be able to access a SAPUI5 installation (sometimes multiple)
– Be able to develop locally but proxy OData/REST calls to another server
– Be able to see web server logs when something is not quite right
JADS is not designed to be a production server but rather a local developer server where they can tweak these scenarios easily & quickly.
Where did JADS come from:
JADS was born out of an interest by me to try out Node.js, a lightweight runtime which is built on top of Chrome’s JavaScript run-time. I started to play with the framework on my commute over 2 days using the scenario of SAPUI5 development. Once I realized I was creating something that I might actually use on a daily basis I decided to get it to a stage where it worked and release it to the community.
Where is JADS now and where is it going
Right now, I am releasing JADS version 1 which works for standard web development and OData proxying to a SAP System. My next goals for features include:
– Specific support for the customization of SAP Fiori apps
– Pass-through of SAP Auth requests through the proxy to the client
– Adding a folder listing feature for directories
– Support for proxy PUT and POST requests (need to add the body payload)
I am open-sourcing the code behind JADS in the hope that if I have missed anything (guaranteed I have! 🙂 ), others can contribute to suit their scenarios. The JADS source can be found in my github repository https://github.com/bocallaghan/JADS
I hope this is useful for somebody else and any comments/suggestions are most welcome,
Brenton.
P.S. in case anybody is wondering – JADS = Just Another Development (web) Server
Great work Brenton. It will be really helpful to the developers. Very interesting.
- Midhun VP
Thanks Midhun! enjoy and shout if you have any comments!
Nice, Got goosebumps on reading. Specially "I started to play with the framework on my commute over 2 days using the scenario of SAPUI5 development. Once I realized I was creating something that I might actually use on a daily basis".
Great work Brenton.
Regards,
Vijay
Thanks Vijay!
Oddly enough I find I do some of my best coding on my commute 😛 (weird I know!) Guess the passing scenery from the train is inspiring!
Thanks Brenton, will give a go, need to get away from my Tomcat comfort zone...
Cheers,
Jason
Nice little script Brenton - well done. I've noticed, however that instead of a 404 for a missing file it responds with a http500 for some reason... Any ideas?
For example when you load a UI5 app you will always see those waste-of-time extra language resources file GET's. Normally they return a http404, but via your Node script its http500.
Could be that the message bundle extensions are not in the supported mime types config: supportedMimeTypes. Will play around with it some more...
Oh - just noticed it reports http500 for missing .js files as well instead of 404.
Hey Jason,
Thanks for replying - nice spot on the "not found" issue. I added some extra error catching to the whole thing and it went a bit too over zealous 🙂
Just pushed a change to the repo so if you pull that issue should be fixed now.
If you find anything else please do shout, or if you have any input feel free to add a merge request.
Thanks again,
Brenton.
Cool, thanks Brenton. Will pull down the latest and take a look.
As per Sascha's comment - it would be great if you could publish this as a node module (npmjs.org), then we could easily use it in other projects such as the yeoman generator for UI5. 😉
Regards...
Great discovery... superb work Brenton
Thanks Jitendra!
Hi Brenton,
we're experimenting with our approach to add that to our yeoman OpenUI5 generator.
Is there any chance, that you wrap JADS into a node module and publish it? That would make our lives tremendously easier, cause we would not have to add a copy to our repository.
Cheers,
Sascha
Hey Sascha,
Sounds like a great idea - I've not put together a module yet but I'll definitely have a look - i'll let you know if I make any progress on it!
Thanks for the feedback,
Brenton
Hey Sascha & Jason,
I have just updated JADS to made it more module friendly and published it as a module - so if you use "npm install jads" now it should work.
Let me know if you have any other comments,
Thanks,
Brenton.
Nice one. I wrapped your original script as a grunt task as well... So if you're interested in using your script as part of a build process you might try grunt-jads. Installable like your new module with "npm install grunt-jads".
I can send you a pull request for it if you want.
Regards...