0

I am using RepositoryConfig in order to register my projections for Spring Data Rest. All projections in the same package. Is there an easy way to add all projections to configuration. Instead of addProjection for each class. Is there a Reflection solution or a Spring-based solution to add all Projection in a package?

@Configuration
public class RepositoryConfig implements RepositoryRestConfigurer {
    @Override
    public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
        config.getProjectionConfiguration()
                .addProjection(PurchaseProjection.class)
                .addProjection(OrderProjection.class);

    }
}
P.J.Meisch
  • 18,013
  • 6
  • 50
  • 66
Muhammed Ozdogan
  • 5,341
  • 8
  • 32
  • 53

1 Answers1

1

I found a reflection library from this question. Via Reflections library here is my solution:

 public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config){
    // Scan all projections and add them in to the configuration.
    Reflections r= new Reflections("com.company.projection");
    for (Class<?> c: r.getTypesAnnotatedWith(Projection.class)) {
      config.getProjectionConfiguration().addProjection(c);
    }
  }
Muhammed Ozdogan
  • 5,341
  • 8
  • 32
  • 53