Post-rebase.

This commit is contained in:
Mark Paluch
2021-10-19 16:07:24 +02:00
parent 73fffec6a7
commit d9740d04ef
6 changed files with 36 additions and 77 deletions

View File

@@ -52,7 +52,6 @@ public interface ReactiveResultSet {
* The {@link Flux} will stream over all records that in this {@link ReactiveResultSet} according to the reactive
* demand and fetch next result chunks by issuing the underlying query with the current {@link java.nio.ByteBuffer
* paging state} applied.
* <p>
*
* @return a {@link Flux} of rows that will stream over all {@link Row rows} of the entire result.
*/

View File

@@ -66,7 +66,6 @@ public interface ReactiveSession extends Closeable {
* <p>
* If a metadata refresh triggers events (such as node added/removed, or schema events), then the new version of the
* metadata is guaranteed to be visible by the time you receive these events.
* <p>
*
* @return never {@code null}, but may be empty if metadata has been disabled in the configuration.
* @since 3.2.2

View File

@@ -37,19 +37,8 @@ import org.springframework.core.annotation.MergedAnnotations;
import org.springframework.core.convert.ConversionService;
import org.springframework.core.convert.support.DefaultConversionService;
import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.data.cassandra.core.mapping.BasicCassandraPersistentEntity;
import org.springframework.data.cassandra.core.mapping.BasicMapId;
import org.springframework.data.cassandra.core.mapping.CassandraMappingContext;
import org.springframework.data.cassandra.core.mapping.CassandraPersistentEntity;
import org.springframework.data.cassandra.core.mapping.CassandraPersistentProperty;
import org.springframework.data.cassandra.core.mapping.Column;
import org.springframework.data.cassandra.core.mapping.Element;
import org.springframework.data.cassandra.core.mapping.Embedded;
import org.springframework.data.cassandra.core.mapping.*;
import org.springframework.data.cassandra.core.mapping.Embedded.OnEmpty;
import org.springframework.data.cassandra.core.mapping.EmbeddedEntityOperations;
import org.springframework.data.cassandra.core.mapping.MapId;
import org.springframework.data.cassandra.core.mapping.MapIdentifiable;
import org.springframework.data.cassandra.core.mapping.UserTypeResolver;
import org.springframework.data.convert.CustomConversions;
import org.springframework.data.mapping.AccessOptions;
import org.springframework.data.mapping.MappingException;
@@ -143,22 +132,22 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
this.mappingContext = mappingContext;
this.setCodecRegistry(mappingContext.getCodecRegistry());
this.setCustomConversions(mappingContext.getCustomConversions());
this.cassandraTypeResolver = new DefaultColumnTypeResolver(mappingContext, userTypeResolver,
this::getCodecRegistry, this::getCustomConversions);
this.cassandraTypeResolver = new DefaultColumnTypeResolver(mappingContext, userTypeResolver, this::getCodecRegistry,
this::getCustomConversions);
this.embeddedEntityOperations = new EmbeddedEntityOperations(mappingContext);
this.spELContext = new SpELContext(RowReaderPropertyAccessor.INSTANCE);
}
/**
* Constructs a new instance of {@link ConversionContext} with various converters to convert different Cassandra
* value types.
* Constructs a new instance of {@link ConversionContext} with various converters to convert different Cassandra value
* types.
*
* @return the {@link ConversionContext}.
* @see ConversionContext
*/
protected ConversionContext getConversionContext() {
return new ConversionContext(this::doReadRow, this::doReadTupleValue, this::doReadUdtValue,
return new ConversionContext(getCustomConversions(), this::doReadRow, this::doReadTupleValue, this::doReadUdtValue,
this::readCollectionOrArray, this::readMap, this::getPotentiallyConvertedSimpleRead);
}
@@ -184,7 +173,6 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
return mappingContext;
}
/* (non-Javadoc)
* @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext)
*/
@@ -501,8 +489,8 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
return (S) getConversionService().convert(valueProvider.getSource(), rawType);
}
CassandraPersistentEntity<S> entity =
(CassandraPersistentEntity<S>) getMappingContext().getPersistentEntity(typeHint);
CassandraPersistentEntity<S> entity = (CassandraPersistentEntity<S>) getMappingContext()
.getPersistentEntity(typeHint);
if (entity == null) {
throw new MappingException(
@@ -527,8 +515,8 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
return UdtValue.class;
}
throw new InvalidDataAccessApiUsageException(String.format("Unsupported source type: %s",
ClassUtils.getDescriptiveType(valueProvider.getSource())));
throw new InvalidDataAccessApiUsageException(
String.format("Unsupported source type: %s", ClassUtils.getDescriptiveType(valueProvider.getSource())));
}
private <S> S doReadEntity(ConversionContext context, CassandraValueProvider valueProvider,
@@ -539,8 +527,8 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
if (persistenceConstructor != null && persistenceConstructor.hasParameters()) {
SpELExpressionEvaluator evaluator = new DefaultSpELExpressionEvaluator(valueProvider.getSource(), spELContext);
ParameterValueProvider<CassandraPersistentProperty> parameterValueProvider =
newParameterValueProvider(context, entity, valueProvider);
ParameterValueProvider<CassandraPersistentProperty> parameterValueProvider = newParameterValueProvider(context,
entity, valueProvider);
provider = new ConverterAwareSpELExpressionParameterValueProvider(evaluator, getConversionService(),
parameterValueProvider, context);
} else {
@@ -927,8 +915,7 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
if (getCustomConversions().hasCustomWriteTarget(value.getClass(), requestedTargetType)) {
Class<?> resolvedTargetType = getCustomConversions()
.getCustomWriteTarget(value.getClass(), requestedTargetType)
Class<?> resolvedTargetType = getCustomConversions().getCustomWriteTarget(value.getClass(), requestedTargetType)
.orElse(requestedTargetType);
return getConversionService().convert(value, resolvedTargetType);
@@ -936,11 +923,9 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
if (getCustomConversions().hasCustomWriteTarget(value.getClass())) {
Class<?> resolvedTargetType = getCustomConversions()
.getCustomWriteTarget(value.getClass())
.orElseThrow(() -> new IllegalStateException(
String.format("Unable to determined custom write target for value type [%s]",
value.getClass().getName())));
Class<?> resolvedTargetType = getCustomConversions().getCustomWriteTarget(value.getClass())
.orElseThrow(() -> new IllegalStateException(String
.format("Unable to determined custom write target for value type [%s]", value.getClass().getName())));
return getConversionService().convert(value, resolvedTargetType);
}
@@ -1318,10 +1303,9 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
final ValueConverter<Object> elementConverter;
public ConversionContext(org.springframework.data.convert.CustomConversions conversions,
ContainerValueConverter<Row> rowConverter,
ContainerValueConverter<TupleValue> tupleConverter, ContainerValueConverter<UdtValue> udtConverter,
ContainerValueConverter<Collection<?>> collectionConverter, ContainerValueConverter<Map<?, ?>> mapConverter,
ValueConverter<Object> elementConverter) {
ContainerValueConverter<Row> rowConverter, ContainerValueConverter<TupleValue> tupleConverter,
ContainerValueConverter<UdtValue> udtConverter, ContainerValueConverter<Collection<?>> collectionConverter,
ContainerValueConverter<Map<?, ?>> mapConverter, ValueConverter<Object> elementConverter) {
this.conversions = conversions;
this.rowConverter = rowConverter;
this.tupleConverter = tupleConverter;

View File

@@ -61,7 +61,6 @@ import com.datastax.oss.driver.api.core.metadata.Metadata;
* <p>
* All CQL operations performed by this class are logged at debug level, using
* {@code org.springframework.data.cassandra.core.cql.DefaultBridgedReactiveSession} as log category.
* <p>
*
* @author Mark Paluch
* @author Mateusz Stefek

View File

@@ -414,7 +414,7 @@ public class CassandraMappingContext
* Returns whether this mapping context has any entities mapped to the given table.
*
* @param name must not be {@literal null}.
* @return @return {@literal true} is this {@literal TableMetadata} is used by a mapping.
* @return {@literal true} is this {@literal TableMetadata} is used by a mapping.
*/
public boolean usesTable(CqlIdentifier name) {

View File

@@ -15,10 +15,16 @@
*/
package org.springframework.data.cassandra.core.convert;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
import static org.springframework.data.cassandra.core.mapping.BasicMapId.id;
import static org.springframework.data.cassandra.test.util.RowMockUtil.column;
import static org.assertj.core.api.Assertions.*;
import static org.springframework.data.cassandra.core.mapping.BasicMapId.*;
import static org.springframework.data.cassandra.test.util.RowMockUtil.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
import java.io.Serializable;
import java.math.BigDecimal;
@@ -30,18 +36,7 @@ import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.*;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
@@ -55,18 +50,8 @@ import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.ReadOnlyProperty;
import org.springframework.data.annotation.Transient;
import org.springframework.data.cassandra.core.cql.PrimaryKeyType;
import org.springframework.data.cassandra.core.mapping.BasicMapId;
import org.springframework.data.cassandra.core.mapping.CassandraMappingContext;
import org.springframework.data.cassandra.core.mapping.CassandraType;
import org.springframework.data.cassandra.core.mapping.*;
import org.springframework.data.cassandra.core.mapping.Column;
import org.springframework.data.cassandra.core.mapping.Element;
import org.springframework.data.cassandra.core.mapping.Embedded;
import org.springframework.data.cassandra.core.mapping.MapId;
import org.springframework.data.cassandra.core.mapping.PrimaryKey;
import org.springframework.data.cassandra.core.mapping.PrimaryKeyClass;
import org.springframework.data.cassandra.core.mapping.PrimaryKeyColumn;
import org.springframework.data.cassandra.core.mapping.Table;
import org.springframework.data.cassandra.core.mapping.Tuple;
import org.springframework.data.cassandra.domain.AllPossibleTypes;
import org.springframework.data.cassandra.domain.CompositeKey;
import org.springframework.data.cassandra.domain.TypeWithCompositeKey;
@@ -85,13 +70,6 @@ import com.datastax.oss.driver.api.core.type.DataTypes;
import com.datastax.oss.driver.internal.core.data.DefaultTupleValue;
import com.datastax.oss.driver.internal.core.type.DefaultTupleType;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
/**
* Unit tests for {@link MappingCassandraConverter}.
*
@@ -1194,9 +1172,8 @@ public class MappingCassandraConverterUnitTests {
@CassandraType(type = CassandraType.Name.SET,
typeArguments = CassandraType.Name.INT) private Set<Condition> conditionSet;
@CassandraType(type = CassandraType.Name.MAP,
typeArguments = { CassandraType.Name.INT,
CassandraType.Name.INT }) private Map<Condition, Condition> conditionMap;
@CassandraType(type = CassandraType.Name.MAP, typeArguments = { CassandraType.Name.INT,
CassandraType.Name.INT }) private Map<Condition, Condition> conditionMap;
}
@@ -1367,7 +1344,8 @@ public class MappingCassandraConverterUnitTests {
Row source = RowMockUtil.newRowMock(column("id", "id-1", DataTypes.TEXT), column("prefixage", 30, DataTypes.INT),
column("prefixfirstname", "fn", DataTypes.TEXT));
WithPrefixedNullableEmbeddedType target = mappingCassandraConverter.read(WithPrefixedNullableEmbeddedType.class, source);
WithPrefixedNullableEmbeddedType target = mappingCassandraConverter.read(WithPrefixedNullableEmbeddedType.class,
source);
assertThat(target.nested).isEqualTo(new EmbeddedWithSimpleTypes("fn", 30, null));
}