private void injectServices(Object target, boolean sharedFields) throws IllegalAccessException { for (final FieldInfo field : spec.getAllFields()) { Field rawField = field.getReflection(); if ((rawField.isAnnotationPresent(Inject.class) || ReflectionUtil.isAnnotationPresent(rawField, "javax.inject.Inject") || rawField.isAnnotationPresent(Autobuild.class)) && rawField.isAnnotationPresent(Shared.class) == sharedFields) { Object value = registry.getObject(rawField.getType(), createAnnotationProvider(field)); rawField.setAccessible(true); rawField.set(target, value); } else if (rawField.isAnnotationPresent(InjectService.class)) { String serviceName = rawField.getAnnotation(InjectService.class).value(); Object value = registry.getService(serviceName, rawField.getType()); rawField.setAccessible(true); rawField.set(target, value); } } }
public final <T> T getObject(Class<T> objectType, AnnotationProvider annotationProvider) { return registry.getObject(objectType, annotationProvider); }
public void process(Object object, Field field) throws IllegalArgumentException, IllegalAccessException { Class<?> type = field.getType(); Object value = getRegistry().getObject(type, new AccessableObjectAnnotationProvider(field)); field.set(object, value); } }
private void injectServices(Object target, boolean sharedFields) throws IllegalAccessException { for (final FieldInfo field : spec.getAllFields()) { Field rawField = field.getReflection(); if ((rawField.isAnnotationPresent(Inject.class) || ReflectionUtil.isAnnotationPresent(rawField, "javax.inject.Inject") || rawField.isAnnotationPresent(Autobuild.class)) && rawField.isAnnotationPresent(Shared.class) == sharedFields) { Object value = registry.getObject(rawField.getType(), createAnnotationProvider(field)); rawField.setAccessible(true); rawField.set(target, value); } else if (rawField.isAnnotationPresent(InjectService.class)) { String serviceName = rawField.getAnnotation(InjectService.class).value(); Object value = registry.getService(serviceName, rawField.getType()); rawField.setAccessible(true); rawField.set(target, value); } } }
return registry.getObject(objectType, provider);
return registry.getObject(objectType, provider);
response = registry.getService(TestableResponse.class); ApplicationGlobals globals = registry.getObject(ApplicationGlobals.class, null);
public final void setupRegistry() { RegistryBuilder builder = new RegistryBuilder(); builder.add(TapestryModule.class); builder.add(JpaModule.class); builder.add(JpaTestModule.class); registry = builder.build(); // set PageTesterContext, otherwise T5 tries to load classpath assets ApplicationGlobals globals = registry.getObject(ApplicationGlobals.class, null); globals.storeContext(new PageTesterContext("")); registry.performRegistryStartup(); entityManagerManager = registry.getService(EntityManagerManager.class); topLevelService = registry.getService(TopLevelService.class); }