public void transform(ClassTransformation transformation, MutableComponentModel model) { List<String> names = transformation.findFieldsWithAnnotation(SessionAttribute.class); for (String fieldName : names) { SessionAttribute annotation = transformation.getFieldAnnotation(fieldName, SessionAttribute.class); String sessionKey = annotation.value(); if ("".equals(sessionKey)) { sessionKey = fieldName; } String fieldType = transformation.getFieldType(fieldName); Request request = objectLocator.getService(Request.class); String requestField = transformation.addInjectedField(Request.class, "_request", request); replaceReadAccess(transformation, fieldName, fieldType, sessionKey, requestField); replaceWriteAccess(transformation, fieldName, fieldType, sessionKey, requestField); } }