exposing JMX interfaces to ANY object is a simple thing. We expose the EJB caches through JMX so there are some code examples.
Exposing the cache as JCA sounds very overkill to me. You want to manage it with JMX sure sure, but accessing it should be simple java.
Finally if you are going to write your own cache... take a look at JBossCache. It is a fairly advanced implementation and it is stable today (being productized but the code is really there).