Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit df1cfca

Browse files
committedJun 9, 2022
hacking - mongodb sample
1 parent 62c05b6 commit df1cfca

File tree

3 files changed

+27
-27
lines changed

3 files changed

+27
-27
lines changed
 

‎src/main/java/org/springframework/data/aot/RepositoryRegistrationAotContribution.java

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -396,39 +396,25 @@ private void contributeProjection(Class<?> type, GenerationContext generationCon
396396
.registerJdkProxy(type, TargetAware.class, SpringProxy.class, DecoratingProxy.class);
397397
}
398398

399-
protected void contribute(AotRepositoryContext repositoryContext, GenerationContext generationContext) {
400-
401-
repositoryContext.getResolvedTypes().stream()
402-
.filter(it -> !isJavaOrPrimitiveType(it))
403-
.forEach(it -> contributeType(it, generationContext));
404-
405-
repositoryContext.getResolvedAnnotations().stream()
406-
.filter(this::isSpringDataManagedAnnotation)
407-
.map(MergedAnnotation::getType)
408-
.forEach(it -> contributeType(it, generationContext));
409-
}
410-
411-
private boolean isJavaOrPrimitiveType(Class<?> type) {
399+
static boolean isJavaOrPrimitiveType(Class<?> type) {
412400

413401
return TypeUtils.type(type).isPartOf("java")
414402
|| type.isPrimitive()
415403
|| ClassUtils.isPrimitiveArray(type);
416404
}
417405

418-
private boolean isSpringDataManagedAnnotation(MergedAnnotation<?> annotation) {
406+
static boolean isSpringDataManagedAnnotation(MergedAnnotation<?> annotation) {
419407

420408
return annotation != null
421409
&& (isInSpringDataNamespace(annotation.getType()) || annotation.getMetaTypes().stream()
422-
.anyMatch(this::isInSpringDataNamespace));
410+
.anyMatch(RepositoryRegistrationAotContribution::isInSpringDataNamespace));
423411
}
424412

425-
private boolean isInSpringDataNamespace(Class<?> type) {
413+
static boolean isInSpringDataNamespace(Class<?> type) {
426414
return type != null && type.getPackage().getName().startsWith(TypeContributor.DATA_NAMESPACE);
427415
}
428416

429-
protected void contributeType(Class<?> type, GenerationContext generationContext) {
430-
431-
logTrace("Contributing type information for [%s]", type);
417+
static void contributeType(Class<?> type, GenerationContext generationContext) {
432418
TypeContributor.contribute(type, it -> true, generationContext);
433419
}
434420

‎src/main/java/org/springframework/data/aot/RepositoryRegistrationAotProcessor.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
3535
import org.springframework.beans.factory.support.RegisteredBean;
3636
import org.springframework.beans.factory.support.RootBeanDefinition;
37+
import org.springframework.core.annotation.MergedAnnotation;
3738
import org.springframework.data.repository.config.RepositoryConfigurationExtension;
3839
import org.springframework.data.repository.config.RepositoryMetadata;
3940
import org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport;
@@ -51,7 +52,7 @@
5152
* via the {@link FactoryBean#OBJECT_TYPE_ATTRIBUTE}.
5253
* </p>
5354
* <p>
54-
* With {@link RepositoryRegistrationAotContribution#contribute(AotRepositoryContext, GenerationContext)}, stores
55+
* With {@link RepositoryRegistrationAotProcessor#contribute(AotRepositoryContext, GenerationContext)}, stores
5556
* can provide custom logic for contributing additional (eg. reflection) configuration. By default, reflection
5657
* configuration will be added for types reachable from the repository declaration and query methods as well as
5758
* all used {@link Annotation annotations} from the {@literal org.springframework.data} namespace.
@@ -83,6 +84,19 @@ public BeanRegistrationAotContribution processAheadOfTime(@NonNull RegisteredBea
8384
: null;
8485
}
8586

87+
protected void contribute(AotRepositoryContext repositoryContext, GenerationContext generationContext) {
88+
89+
repositoryContext.getResolvedTypes().stream()
90+
.filter(it -> !RepositoryRegistrationAotContribution
91+
.isJavaOrPrimitiveType(it))
92+
.forEach(it -> RepositoryRegistrationAotContribution.contributeType(it, generationContext));
93+
94+
repositoryContext.getResolvedAnnotations().stream()
95+
.filter(RepositoryRegistrationAotContribution::isSpringDataManagedAnnotation)
96+
.map(MergedAnnotation::getType)
97+
.forEach(it -> RepositoryRegistrationAotContribution.contributeType(it, generationContext));
98+
}
99+
86100
private boolean isRepositoryBean(RegisteredBean bean) {
87101
return bean != null && getConfigMap().containsKey(bean.getBeanName());
88102
}
@@ -93,7 +107,7 @@ protected RepositoryRegistrationAotContribution newRepositoryRegistrationAotCont
93107
RepositoryRegistrationAotContribution contribution =
94108
RepositoryRegistrationAotContribution.fromProcessor(this).forBean(repositoryBean);
95109

96-
return contribution.withModuleContribution(contribution::contribute);
110+
return contribution.withModuleContribution(this::contribute);
97111
}
98112

99113
@Override

‎src/main/java/org/springframework/data/aot/TypeContributor.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
* @author Christoph Strobl
3030
* @since 3.0
3131
*/
32-
class TypeContributor {
32+
public class TypeContributor {
3333

3434
public static final String DATA_NAMESPACE = "org.springframework.data";
3535

@@ -39,7 +39,7 @@ class TypeContributor {
3939
* @param type
4040
* @param contribution
4141
*/
42-
static void contribute(Class<?> type, GenerationContext contribution) {
42+
public static void contribute(Class<?> type, GenerationContext contribution) {
4343
contribute(type, Collections.emptySet(), contribution);
4444
}
4545

@@ -51,7 +51,7 @@ static void contribute(Class<?> type, GenerationContext contribution) {
5151
* @param contribution
5252
*/
5353
@SuppressWarnings("unchecked")
54-
static void contribute(Class<?> type, Predicate<Class<? extends Annotation>> filter, GenerationContext contribution) {
54+
public static void contribute(Class<?> type, Predicate<Class<? extends Annotation>> filter, GenerationContext contribution) {
5555

5656
if (type.isPrimitive()) {
5757
return;
@@ -87,15 +87,15 @@ static void contribute(Class<?> type, Predicate<Class<? extends Annotation>> fil
8787
* @param annotationNamespaces
8888
* @param contribution
8989
*/
90-
static void contribute(Class<?> type, Set<String> annotationNamespaces, GenerationContext contribution) {
90+
public static void contribute(Class<?> type, Set<String> annotationNamespaces, GenerationContext contribution) {
9191
contribute(type, it -> isPartOfOrMetaAnnotatedWith(it, annotationNamespaces), contribution);
9292
}
9393

94-
private static boolean isPartOf(Class<?> type, Set<String> namespaces) {
94+
public static boolean isPartOf(Class<?> type, Set<String> namespaces) {
9595
return namespaces.stream().anyMatch(namespace -> type.getPackageName().startsWith(namespace));
9696
}
9797

98-
protected static boolean isPartOfOrMetaAnnotatedWith(Class<? extends Annotation> annotation, Set<String> namespaces) {
98+
public static boolean isPartOfOrMetaAnnotatedWith(Class<? extends Annotation> annotation, Set<String> namespaces) {
9999

100100
if (isPartOf(annotation, namespaces)) {
101101
return true;

0 commit comments

Comments
 (0)
Please sign in to comment.