The benefits of Grids for building massively distributed applications have been broadly acknowledged. However, the high complexity of developing Grid applications compromises the widespread adoption of the paradigm. In a previous paper (Future Gener. Comput. Syst. 2008; 24(2):99-118), we have described JGRIM, a method for easily 'gridifying' Java applications, based on non-invasively injecting Grid functionality into ordinary code through Dependency Injection (DI). DI is similar to the Inversion of Control notion of object-oriented frameworks and allows external services providing certain functionality to be injected into application components that require these services without affecting the components' implementation. In this paper, we briefly revisit JGRIM and present m-JGRIM, a novel Java middleware that materializes JGRIM concepts by transforming ordinary applications into entities called Mobile Grid Services, i.e. gridified applications with mobile capabilities that live within a Grid. We also provide an evaluation of the performance of m-JGRIM. Grid practitioners should find this paper useful in having an assessment of the practical benefits and costs of gridifying applications with the middleware, and a down-to-earth description of JGRIM, whose advantages for Grid-enabling applications from a software engineering perspective have been already evaluated in (Future Gener. Comput. Syst. 2008; 24(2):99-118).