Skip to content

Commit 6cb2163

Browse files
committed
feat: update Cassandra repository using proxy
Signed-off-by: Otavio Santana <[email protected]>
1 parent d28b60e commit 6cb2163

File tree

3 files changed

+17
-21
lines changed

3 files changed

+17
-21
lines changed

jnosql-cassandra/src/main/java/org/eclipse/jnosql/databases/cassandra/mapping/CassandraRepositoryBean.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,16 @@
3030
import java.util.Set;
3131

3232

33-
class CassandraRepositoryBean extends AbstractBean<CassandraRepository> {
33+
class CassandraRepositoryBean<T, K> extends AbstractBean<CassandraRepository<T, K>> {
3434

35-
private final Class<?> type;
35+
private final Class<T> type;
3636

3737
private final Set<Type> types;
3838

3939
private final Set<Annotation> qualifiers = Collections.singleton(new AnnotationLiteral<Default>() {
4040
});
4141

42-
CassandraRepositoryBean(Class<?> type) {
42+
CassandraRepositoryBean(Class<T> type) {
4343
this.type = type;
4444
this.types = Collections.singleton(type);
4545
}
@@ -49,16 +49,15 @@ public Class<?> getBeanClass() {
4949
return type;
5050
}
5151

52+
@SuppressWarnings("unchecked")
5253
@Override
53-
public CassandraRepository create(CreationalContext<CassandraRepository> creationalContext) {
54+
public CassandraRepository<T, K> create(CreationalContext<CassandraRepository<T, K>> creationalContext) {
5455
CassandraTemplate template = getInstance(CassandraTemplate.class);
55-
ColumnRepositoryProducer producer = getInstance(ColumnRepositoryProducer.class);
56-
PageableRepository<?,?> repository = producer.get((Class<PageableRepository<Object, Object>>) type, template);
5756
Converters converters = getInstance(Converters.class);
5857
EntitiesMetadata entitiesMetadata = getInstance(EntitiesMetadata.class);
59-
CassandraRepositoryProxy handler = new CassandraRepositoryProxy(template, type, repository,
58+
CassandraRepositoryProxy<T, K> handler = new CassandraRepositoryProxy<>(template, type,
6059
converters, entitiesMetadata);
61-
return (CassandraRepository) Proxy.newProxyInstance(type.getClassLoader(),
60+
return (CassandraRepository<T, K>) Proxy.newProxyInstance(type.getClassLoader(),
6261
new Class[]{type},
6362
handler);
6463
}

jnosql-cassandra/src/main/java/org/eclipse/jnosql/databases/cassandra/mapping/CassandraRepositoryProxy.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@
1515
package org.eclipse.jnosql.databases.cassandra.mapping;
1616

1717

18-
import jakarta.data.repository.PageableRepository;
18+
import org.eclipse.jnosql.mapping.column.query.ColumnRepositoryProxy;
1919
import org.eclipse.jnosql.mapping.core.Converters;
2020
import org.eclipse.jnosql.mapping.column.JNoSQLColumnTemplate;
2121
import org.eclipse.jnosql.mapping.column.query.AbstractColumnRepositoryProxy;
22+
import org.eclipse.jnosql.mapping.core.query.AbstractRepository;
2223
import org.eclipse.jnosql.mapping.metadata.EntitiesMetadata;
2324
import org.eclipse.jnosql.mapping.metadata.EntityMetadata;
2425
import org.eclipse.jnosql.mapping.core.repository.DynamicReturn;
@@ -37,7 +38,7 @@ class CassandraRepositoryProxy<T, K> extends AbstractColumnRepositoryProxy<T, K>
3738

3839
private final CassandraTemplate template;
3940

40-
private final PageableRepository<T,?> repository;
41+
private final AbstractRepository<T,K> repository;
4142

4243
private final Converters converters;
4344

@@ -46,25 +47,25 @@ class CassandraRepositoryProxy<T, K> extends AbstractColumnRepositoryProxy<T, K>
4647
private final Class<?> repositoryType;
4748

4849
CassandraRepositoryProxy(CassandraTemplate template, Class<?> repositoryType,
49-
PageableRepository<T, ?> repository,
5050
Converters converters, EntitiesMetadata entitiesMetadata) {
5151

5252
this.template = template;
5353
this.typeClass = Class.class.cast(ParameterizedType.class.cast(repositoryType.getGenericInterfaces()[0])
5454
.getActualTypeArguments()[0]);
55-
this.repository = repository;
55+
5656
this.converters = converters;
5757
this.entityMetadata = entitiesMetadata.get(typeClass);
5858
this.repositoryType = repositoryType;
59+
this.repository = ColumnRepositoryProxy.ColumnRepository.of(template, entityMetadata);
5960
}
6061

6162
@Override
62-
protected PageableRepository getRepository() {
63+
protected AbstractRepository<T, K> repository() {
6364
return repository;
6465
}
6566

6667
@Override
67-
protected Converters getConverters() {
68+
protected Converters converters() {
6869
return converters;
6970
}
7071

@@ -74,12 +75,12 @@ protected Class<?> repositoryType() {
7475
}
7576

7677
@Override
77-
protected EntityMetadata getEntityMetadata() {
78+
protected EntityMetadata entityMetadata() {
7879
return entityMetadata;
7980
}
8081

8182
@Override
82-
protected JNoSQLColumnTemplate getTemplate() {
83+
protected JNoSQLColumnTemplate template() {
8384
return template;
8485
}
8586

jnosql-cassandra/src/test/java/org/eclipse/jnosql/databases/cassandra/mapping/CassandraRepositoryProxyTest.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,6 @@ public class CassandraRepositoryProxyTest {
5454

5555
private CassandraTemplate template;
5656

57-
@Inject
58-
private ColumnRepositoryProducer producer;
59-
6057
@Inject
6158
private Converters converters;
6259

@@ -68,9 +65,8 @@ public class CassandraRepositoryProxyTest {
6865
@BeforeEach
6966
public void setUp() {
7067
this.template = Mockito.mock(CassandraTemplate.class);
71-
PersonRepository personRepository = producer.get(PersonRepository.class, template);
7268
CassandraRepositoryProxy handler = new CassandraRepositoryProxy(template,
73-
PersonRepository.class, personRepository, converters, entitiesMetadata);
69+
PersonRepository.class, converters, entitiesMetadata);
7470

7571
when(template.insert(any(Person.class))).thenReturn(new Person());
7672
when(template.insert(any(Person.class), any(Duration.class))).thenReturn(new Person());

0 commit comments

Comments
 (0)