Injecting roles in Java agents through runtime bytecode manipulation | IBM Journals & Magazine | IEEE Xplore