I am writing a Java Spring based Library. I have written junit tests for them. The problem which I have is that though my beans are getting printed, they are not getting autowired properly. They are null.
Here is the code.
@Test
public void test() {
System.out.println(Arrays.asList(applicationContext.getBeanDefinitionNames()));
try{
DBClient dbClient = new DBClient();
dbClient.doSomething();
}catch(Exception e){
e.printStackTrace();
}
}
Here is my DBClient code:
@Autowired
@Qualifier("UserActivityRepositoryService")
private UserActivityRepositoryService userRepositoryService;
public void doSomething() {
System.out.println("Inside db client. Getting the count");
System.out.println(this.userRepositoryService.count());
}
This is my UserRepositoryService class code
@Service
@Qualifier("UserActivityRepositoryService")
public class UserActivityRepositoryService implements IRepoClient<UserActivity>{
private UserActivityRepository repo;
@Autowired
public void setUserActivityRepository(UserActivityRepository repo) {
this.repo = repo;
}
public void create(UserActivity userActivity) {
repo.save(userActivity);
}
@Override
public UserActivity save(UserActivity entity) {
// TODO Auto-generated method stub
System.out.println("Creating the documenht");
try{
repo.save(entity);
}catch(Exception e){
e.printStackTrace();
}
System.out.println("userActivity" + entity);
return null;
}
@Override
public Iterable<UserActivity> save(Iterable<UserActivity> entities) {
// TODO Auto-generated method stub
return null;
}
@Override
public UserActivity findOne(String id) {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean exists(String id) {
// TODO Auto-generated method stub
return false;
}
@Override
public Iterable<UserActivity> findAll() {
// TODO Auto-generated method stub
return null;
}
@Override
public Iterable<UserActivity> findAll(Iterable<String> ids) {
// TODO Auto-generated method stub
return null;
}
@Override
public void delete(String id) {
// TODO Auto-generated method stub
}
@Override
public void delete(UserActivity entity) {
// TODO Auto-generated method stub
}
@Override
public void delete(Iterable<? extends UserActivity> entities) {
// TODO Auto-generated method stub
}
@Override
public void deleteAll() {
// TODO Auto-generated method stub
}
@Override
public long count() {
// TODO Auto-generated method stub
return 0;
}
}
Here is my output: [org.springframework.context.annotation.internalConfigurationAnnotationProcessor, org.springframework.context.annotation.internalAutowiredAnnotationProcessor, org.springframework.context.annotation.internalRequiredAnnotationProcessor, org.springframework.context.annotation.internalCommonAnnotationProcessor, org.springframework.context.event.internalEventListenerProcessor, org.springframework.context.event.internalEventListenerFactory, myCouchbaseConfig, integrationTestConfig, org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor, org.springframework.context.annotation.ConfigurationClassPostProcessor.enhancedConfigurationProcessor, CBRepoFactory, repoFactoryBuilder, config, userActivityRepositoryService, couchbaseBucket, couchbaseCluster, couchbaseClusterInfo, couchbaseEnv, couchbaseTranslationService, couchbaseIndexManager, couchbaseMappingConverter, couchbaseTemplate, couchbaseRepositoryOperationsMapping, couchbaseMappingContext, couchbaseCustomConversions, org.springframework.data.couchbase.repository.config.CouchbaseRepositoryConfigurationExtension#0, userActivityRepository] java.lang.NullPointerException Inside db client. Getting the count
Can anyone tell me what I am doing wrong.