Just a quick post here today, and hopefully I flesh out a more detailed post on SCN later:
There are probably two ways to make money developing apps on the HANA Cloud Platform:
1) be incredibly good at it, such that you can build truly awesome stuff that customers aren’t going to care about platform costs and still pay you bucket-loads
2) use the OEM model and build very efficient apps that solve a little problem for lots of people. Keep costs low, and sell to lots and lots of people.
3) be big consult, wine & dine the people with the money, put loadsa people on simple projects bill lots.
I’m aiming for a mix of 1 and 2 to just get into the sweet spot, of course that’s hard work. But this evening I made a step in the right direction by enabling multi-tenant access to one of my apps that auto-magically put the tenant key in all DB accesses in my app – without me having to do any work to specifically write that into the queries.
for reference the magic happens with a custom implementation/extension of JpaRepositoryFactory, JpaRepositoryFactoryBean and SimpleJpaRepository and one line in my Spring xml:
<jpa:repositories base-package=”com.wombling.blah.blah.dao ”
factory-class=”com.wombling.blah.blah.multitenancy.MultiTenantJpaRepositoryFactoryBean” />
my custom tenancy resolver:
public class CurrentTenantResolverImpl implements CurrentTenantResolver<String> { @Override public String getCurrentTenantId() { InitialContext ctx; try { ctx = new InitialContext(); Context envCtx = (Context) ctx.lookup("java:comp/env"); TenantContext tenantContext = (TenantContext) envCtx.lookup("TenantContext"); return tenantContext.getTenantId(); } catch (NamingException e) { return "NOT_CURRENTLY_RUNNING_MULTI_-_TENANT"; // 36 chars as per real tenant id } } }
is called each time a DB query is made (which is already pretty invisible due to “magic” of Spring data and JPA.)
I have to give a huge shout out to Peter Leibiger from Slovakia who posted up most of the code I reused. Thanks dude!
http://codecrafters.blogspot.sk/2013/03/multi-tenant-cloud-applications-with.html
I’ll get back to you with some more HR type stuff later.