1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.persistence.jpa;
20
21 import org.springframework.beans.factory.support.BeanDefinitionRegistry;
22 import org.springframework.context.ApplicationContext;
23 import org.springframework.context.ConfigurableApplicationContext;
24 import org.springframework.context.annotation.AnnotatedBeanDefinitionReader;
25 import org.springframework.test.context.ContextCustomizer;
26 import org.springframework.test.context.MergedContextConfiguration;
27 import org.springframework.test.context.support.TestPropertySourceUtils;
28
29 public class JPAJSONTestContextCustomizer implements ContextCustomizer {
30
31 private static BeanDefinitionRegistry getBeanDefinitionRegistry(final ApplicationContext ctx) {
32 if (ctx instanceof BeanDefinitionRegistry) {
33 return (BeanDefinitionRegistry) ctx;
34 }
35 if (ctx instanceof ConfigurableApplicationContext) {
36 return (BeanDefinitionRegistry) ((ConfigurableApplicationContext) ctx).getBeanFactory();
37 }
38 throw new IllegalStateException("Could not locate BeanDefinitionRegistry");
39 }
40
41 @Override
42 public void customizeContext(final ConfigurableApplicationContext ctx, final MergedContextConfiguration cfg) {
43 switch (System.getProperty("profileId")) {
44 case "pgjsonb":
45 TestPropertySourceUtils.addInlinedPropertiesToEnvironment(
46 ctx,
47 "provisioning.quartz.sql=tables_postgres.sql");
48 break;
49
50 case "myjson":
51 TestPropertySourceUtils.addInlinedPropertiesToEnvironment(
52 ctx,
53 "provisioning.quartz.sql=tables_mysql_innodb.sql");
54 break;
55
56 case "ojson":
57 TestPropertySourceUtils.addInlinedPropertiesToEnvironment(
58 ctx,
59 "provisioning.quartz.sql=tables_oracle.sql");
60 break;
61
62 default:
63 }
64
65 AnnotatedBeanDefinitionReader reader = new AnnotatedBeanDefinitionReader(getBeanDefinitionRegistry(ctx));
66 reader.registerBean(PGJPAJSONPersistenceContext.class, "PGJPAJSONPersistenceContext");
67 reader.registerBean(MyJPAJSONPersistenceContext.class, "MyJPAJSONPersistenceContext");
68 reader.registerBean(OJPAJSONPersistenceContext.class, "OJPAJSONPersistenceContext");
69 }
70 }