Firstly, I'd like to point out that I'm a solutions architect but a complete novice when it comes to the FUSE platform. Having said that I've been writing enterprise apps for a long time and am now looking to rollout a suite of mobile solutions. Our company has chosen FUSE as the integration/services platform and in the pocess employed a FUSE expert from an offshore company to get FUSE setup and running. I have to say he's done a stella job so far. But there are a couple of things that him and I patently disagree on when it comes to develpoing backend software for these mobile apps. The core issue is that of mantaining technical currentcy on an OSGI platform. To ellaborate:
* We currently have FUSE 6.0. There is no roadmap to upgrade it at the moment.
* The FUSE expert insists that we use the FUSE supplied/endorsed OSGI components for Spring and Hibernate (namely Spring 3 and Hibernate 3) and any other libs. That is if it comes with FUSE 6.0 we must use that version.
* Me being an application architect want to use the latest and greatest (Spring 4 and Hibernate 4) however these libs are not supported by Redhat in their OSGI forms for FUSE 6.0.
* Now I could just include these libs as party of my application jar but the FUSE expert believes that promotes bloatware on the FUSE platform and that I should be using what comes out of the box with FUSE. He points out that application bundles should be in the KBs and not MBs with large libs like Spring 4.x and Hibernate 4.x and other thirdparty APIs.
* So where do we go from here. What is the right way to promote technical currentcy on FUSE and still keep true to its OSGI roots?
That is, ideally what I'd like to see, is us being able to use incremental versions of third pary libs on FUSE with different applications using different versions like:
Application X uses Spring 3.0.8
Application Y uses Spring 4.1.2 etc...
Your thoughts comments feedback would be greatly appreciated.