Formatting.
This commit is contained in:
parent
11de7015c2
commit
f168b33f6a
9 changed files with 72 additions and 72 deletions
|
@ -1,13 +1,6 @@
|
||||||
package net.helenus.core;
|
package net.helenus.core;
|
||||||
|
|
||||||
import com.google.common.primitives.Primitives;
|
import com.google.common.primitives.Primitives;
|
||||||
import net.helenus.core.reflect.DefaultPrimitiveTypes;
|
|
||||||
import net.helenus.core.reflect.Drafted;
|
|
||||||
import net.helenus.core.reflect.MapExportable;
|
|
||||||
import net.helenus.mapping.HelenusProperty;
|
|
||||||
import net.helenus.mapping.MappingUtil;
|
|
||||||
import org.apache.commons.lang3.SerializationUtils;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -15,6 +8,12 @@ import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import net.helenus.core.reflect.DefaultPrimitiveTypes;
|
||||||
|
import net.helenus.core.reflect.Drafted;
|
||||||
|
import net.helenus.core.reflect.MapExportable;
|
||||||
|
import net.helenus.mapping.HelenusProperty;
|
||||||
|
import net.helenus.mapping.MappingUtil;
|
||||||
|
import org.apache.commons.lang3.SerializationUtils;
|
||||||
|
|
||||||
public abstract class AbstractEntityDraft<E> implements Drafted<E> {
|
public abstract class AbstractEntityDraft<E> implements Drafted<E> {
|
||||||
|
|
||||||
|
@ -111,17 +110,17 @@ public abstract class AbstractEntityDraft<E> implements Drafted<E> {
|
||||||
Objects.requireNonNull(key);
|
Objects.requireNonNull(key);
|
||||||
|
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
if (entity != null) {
|
if (entity != null) {
|
||||||
if (entityMap.containsKey(key)) {
|
if (entityMap.containsKey(key)) {
|
||||||
T currentValue = this.<T>fetch(key);
|
T currentValue = this.<T>fetch(key);
|
||||||
if (currentValue != null && !value.equals(currentValue)) {
|
if (currentValue != null && !value.equals(currentValue)) {
|
||||||
backingMap.put(key, value);
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
backingMap.put(key, value);
|
backingMap.put(key, value);
|
||||||
|
return value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
backingMap.put(key, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -148,11 +147,11 @@ public abstract class AbstractEntityDraft<E> implements Drafted<E> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T> T fetch(String key) {
|
private <T> T fetch(String key) {
|
||||||
T value = (T) backingMap.get(key);
|
T value = (T) backingMap.get(key);
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
value = (T) entityMap.get(key);
|
value = (T) entityMap.get(key);
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> boolean reset(String key, T desiredValue) {
|
public <T> boolean reset(String key, T desiredValue) {
|
||||||
|
|
|
@ -204,21 +204,21 @@ public abstract class AbstractUnitOfWork<E extends Exception>
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Optional<Object> cacheLookup(String key) {
|
public Optional<Object> cacheLookup(String key) {
|
||||||
AbstractUnitOfWork self = this;
|
AbstractUnitOfWork self = this;
|
||||||
do {
|
do {
|
||||||
Object result = self.statementCache.get(key);
|
Object result = self.statementCache.get(key);
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
return result == deleted ? Optional.ofNullable(null) : Optional.of(result);
|
return result == deleted ? Optional.ofNullable(null) : Optional.of(result);
|
||||||
}
|
}
|
||||||
self = self.parent;
|
self = self.parent;
|
||||||
} while (self != null);
|
} while (self != null);
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Optional<Object> cacheLookup(List<Facet> facets) {
|
public Optional<Object> cacheLookup(List<Facet> facets) {
|
||||||
String tableName = CacheUtil.schemaName(facets);
|
String tableName = CacheUtil.schemaName(facets);
|
||||||
Optional<Object> result = Optional.empty();
|
Optional<Object> result = Optional.empty();
|
||||||
for (Facet facet : facets) {
|
for (Facet facet : facets) {
|
||||||
if (!facet.fixed()) {
|
if (!facet.fixed()) {
|
||||||
String columnName = facet.name() + "==" + facet.value();
|
String columnName = facet.name() + "==" + facet.value();
|
||||||
|
@ -257,12 +257,12 @@ public abstract class AbstractUnitOfWork<E extends Exception>
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cacheEvict(String key) {
|
public void cacheEvict(String key) {
|
||||||
statementCache.remove(key);
|
statementCache.remove(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cacheDelete(String key) {
|
public void cacheDelete(String key) {
|
||||||
statementCache.replace(key, deleted);
|
statementCache.replace(key, deleted);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -303,7 +303,7 @@ public abstract class AbstractUnitOfWork<E extends Exception>
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object cacheUpdate(String key, Object value) {
|
public Object cacheUpdate(String key, Object value) {
|
||||||
return statementCache.replace(key, value);
|
return statementCache.replace(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -377,7 +377,6 @@ public abstract class AbstractUnitOfWork<E extends Exception>
|
||||||
if (LOG.isInfoEnabled()) {
|
if (LOG.isInfoEnabled()) {
|
||||||
LOG.info(logTimers("aborted"));
|
LOG.info(logTimers("aborted"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return new PostCommitFunction(this, null, null, false);
|
return new PostCommitFunction(this, null, null, false);
|
||||||
|
@ -502,7 +501,7 @@ public abstract class AbstractUnitOfWork<E extends Exception>
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isDone() {
|
public boolean isDone() {
|
||||||
return aborted || committed;
|
return aborted || committed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String describeConflicts() {
|
public String describeConflicts() {
|
||||||
|
|
|
@ -15,9 +15,8 @@
|
||||||
*/
|
*/
|
||||||
package net.helenus.core;
|
package net.helenus.core;
|
||||||
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
import com.datastax.driver.core.querybuilder.Clause;
|
import com.datastax.driver.core.querybuilder.Clause;
|
||||||
|
import java.util.Objects;
|
||||||
import net.helenus.core.reflect.HelenusPropertyNode;
|
import net.helenus.core.reflect.HelenusPropertyNode;
|
||||||
import net.helenus.mapping.MappingUtil;
|
import net.helenus.mapping.MappingUtil;
|
||||||
import net.helenus.mapping.value.ColumnValuePreparer;
|
import net.helenus.mapping.value.ColumnValuePreparer;
|
||||||
|
|
|
@ -33,8 +33,10 @@ import net.helenus.support.HelenusMappingException;
|
||||||
|
|
||||||
public final class Helenus {
|
public final class Helenus {
|
||||||
|
|
||||||
private static final ConcurrentMap<Class<?>, Object> dslCache = new ConcurrentHashMap<Class<?>, Object>();
|
private static final ConcurrentMap<Class<?>, Object> dslCache =
|
||||||
private static final ConcurrentMap<Class<?>, Metadata> metadataForEntity = new ConcurrentHashMap<Class<?>, Metadata>();
|
new ConcurrentHashMap<Class<?>, Object>();
|
||||||
|
private static final ConcurrentMap<Class<?>, Metadata> metadataForEntity =
|
||||||
|
new ConcurrentHashMap<Class<?>, Metadata>();
|
||||||
private static final Set<HelenusSession> sessions = new HashSet<HelenusSession>();
|
private static final Set<HelenusSession> sessions = new HashSet<HelenusSession>();
|
||||||
private static volatile HelenusSettings settings = new DefaultHelenusSettings();
|
private static volatile HelenusSettings settings = new DefaultHelenusSettings();
|
||||||
private static volatile HelenusSession singleton;
|
private static volatile HelenusSession singleton;
|
||||||
|
@ -80,7 +82,7 @@ public final class Helenus {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SessionInitializer init(Session session, String keyspace) {
|
public static SessionInitializer init(Session session, String keyspace) {
|
||||||
return new SessionInitializer(session, keyspace);
|
return new SessionInitializer(session, keyspace);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SessionInitializer init(Session session) {
|
public static SessionInitializer init(Session session) {
|
||||||
|
|
|
@ -100,7 +100,8 @@ public class HelenusSession extends AbstractSessionOperations implements Closeab
|
||||||
this.showCql = showCql;
|
this.showCql = showCql;
|
||||||
this.showValues = showValues;
|
this.showValues = showValues;
|
||||||
this.printStream = printStream;
|
this.printStream = printStream;
|
||||||
this.sessionRepository = sessionRepositoryBuilder == null ? null : sessionRepositoryBuilder.build();
|
this.sessionRepository =
|
||||||
|
sessionRepositoryBuilder == null ? null : sessionRepositoryBuilder.build();
|
||||||
this.executor = executor;
|
this.executor = executor;
|
||||||
this.dropSchemaOnClose = dropSchemaOnClose;
|
this.dropSchemaOnClose = dropSchemaOnClose;
|
||||||
this.defaultConsistencyLevel = consistencyLevel;
|
this.defaultConsistencyLevel = consistencyLevel;
|
||||||
|
|
|
@ -15,6 +15,15 @@
|
||||||
*/
|
*/
|
||||||
package net.helenus.core;
|
package net.helenus.core;
|
||||||
|
|
||||||
|
import brave.Tracer;
|
||||||
|
import com.codahale.metrics.MetricRegistry;
|
||||||
|
import com.datastax.driver.core.CodecRegistry;
|
||||||
|
import com.datastax.driver.core.ConsistencyLevel;
|
||||||
|
import com.datastax.driver.core.KeyspaceMetadata;
|
||||||
|
import com.datastax.driver.core.Session;
|
||||||
|
import com.datastax.driver.core.TableMetadata;
|
||||||
|
import com.datastax.driver.core.UserType;
|
||||||
|
import com.google.common.util.concurrent.MoreExecutors;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
import java.util.ArrayDeque;
|
import java.util.ArrayDeque;
|
||||||
|
@ -27,16 +36,6 @@ import java.util.Set;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import brave.Tracer;
|
|
||||||
import com.codahale.metrics.MetricRegistry;
|
|
||||||
import com.datastax.driver.core.CodecRegistry;
|
|
||||||
import com.datastax.driver.core.ConsistencyLevel;
|
|
||||||
import com.datastax.driver.core.KeyspaceMetadata;
|
|
||||||
import com.datastax.driver.core.Session;
|
|
||||||
import com.datastax.driver.core.TableMetadata;
|
|
||||||
import com.datastax.driver.core.UserType;
|
|
||||||
import com.google.common.util.concurrent.MoreExecutors;
|
|
||||||
import net.helenus.core.cache.SessionCache;
|
import net.helenus.core.cache.SessionCache;
|
||||||
import net.helenus.core.reflect.DslExportable;
|
import net.helenus.core.reflect.DslExportable;
|
||||||
import net.helenus.mapping.HelenusEntity;
|
import net.helenus.mapping.HelenusEntity;
|
||||||
|
@ -71,17 +70,17 @@ public final class SessionInitializer extends AbstractSessionOperations {
|
||||||
private SessionCache sessionCache = null;
|
private SessionCache sessionCache = null;
|
||||||
|
|
||||||
SessionInitializer(Session session, String keyspace) {
|
SessionInitializer(Session session, String keyspace) {
|
||||||
this.session = session;
|
this.session = session;
|
||||||
this.usingKeyspace = keyspace;
|
this.usingKeyspace = keyspace;
|
||||||
if (session != null) {
|
if (session != null) {
|
||||||
this.sessionRepository = new SessionRepositoryBuilder(session);
|
this.sessionRepository = new SessionRepositoryBuilder(session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SessionInitializer(Session session) {
|
SessionInitializer(Session session) {
|
||||||
this.session = Objects.requireNonNull(session, "empty session");
|
this.session = Objects.requireNonNull(session, "empty session");
|
||||||
this.usingKeyspace = session.getLoggedKeyspace(); // can be null
|
this.usingKeyspace = session.getLoggedKeyspace(); // can be null
|
||||||
this.sessionRepository = new SessionRepositoryBuilder(session);
|
this.sessionRepository = new SessionRepositoryBuilder(session);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -325,15 +324,14 @@ public final class SessionInitializer extends AbstractSessionOperations {
|
||||||
|
|
||||||
DslExportable dsl = (DslExportable) Helenus.dsl(iface);
|
DslExportable dsl = (DslExportable) Helenus.dsl(iface);
|
||||||
if (session != null) {
|
if (session != null) {
|
||||||
dsl.setCassandraMetadataForHelenusSession(session.getCluster().getMetadata());
|
dsl.setCassandraMetadataForHelenusSession(session.getCluster().getMetadata());
|
||||||
}
|
}
|
||||||
if (sessionRepository != null) {
|
if (sessionRepository != null) {
|
||||||
sessionRepository.add(dsl);
|
sessionRepository.add(dsl);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (session == null)
|
if (session == null) return;
|
||||||
return;
|
|
||||||
|
|
||||||
TableOperations tableOps = new TableOperations(this, dropUnusedColumns, dropUnusedIndexes);
|
TableOperations tableOps = new TableOperations(this, dropUnusedColumns, dropUnusedIndexes);
|
||||||
UserTypeOperations userTypeOps = new UserTypeOperations(this, dropUnusedColumns);
|
UserTypeOperations userTypeOps = new UserTypeOperations(this, dropUnusedColumns);
|
||||||
|
|
|
@ -62,12 +62,15 @@ public interface UnitOfWork<X extends Exception> extends AutoCloseable {
|
||||||
void addFuture(CompletableFuture<?> future);
|
void addFuture(CompletableFuture<?> future);
|
||||||
|
|
||||||
Optional<Object> cacheLookup(String key);
|
Optional<Object> cacheLookup(String key);
|
||||||
|
|
||||||
Optional<Object> cacheLookup(List<Facet> facets);
|
Optional<Object> cacheLookup(List<Facet> facets);
|
||||||
|
|
||||||
Object cacheUpdate(String key, Object value);
|
Object cacheUpdate(String key, Object value);
|
||||||
|
|
||||||
Object cacheUpdate(Object pojo, List<Facet> facets);
|
Object cacheUpdate(Object pojo, List<Facet> facets);
|
||||||
|
|
||||||
void cacheEvict(String key);
|
void cacheEvict(String key);
|
||||||
|
|
||||||
List<Facet> cacheEvict(List<Facet> facets);
|
List<Facet> cacheEvict(List<Facet> facets);
|
||||||
|
|
||||||
public void cacheDelete(String key);
|
public void cacheDelete(String key);
|
||||||
|
|
|
@ -35,7 +35,7 @@ public class BatchOperation extends Operation<Long> {
|
||||||
|
|
||||||
public BatchOperation(AbstractSessionOperations sessionOperations) {
|
public BatchOperation(AbstractSessionOperations sessionOperations) {
|
||||||
super(sessionOperations);
|
super(sessionOperations);
|
||||||
batch = new BatchStatement();
|
batch = new BatchStatement();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void add(AbstractOperation<?, ?> operation) {
|
public void add(AbstractOperation<?, ?> operation) {
|
||||||
|
@ -51,8 +51,8 @@ public class BatchOperation extends Operation<Long> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private long captureTimestampMsec() {
|
private long captureTimestampMsec() {
|
||||||
// Java 9: Instant.now().truncatedTo( ChronoUnit.MICROSECONDS );
|
// Java 9: Instant.now().truncatedTo( ChronoUnit.MICROSECONDS );
|
||||||
return TimeUnit.NANOSECONDS.convert(System.nanoTime(), TimeUnit.MICROSECONDS);
|
return TimeUnit.NANOSECONDS.convert(System.nanoTime(), TimeUnit.MICROSECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BatchOperation logged() {
|
public BatchOperation logged() {
|
||||||
|
@ -134,7 +134,7 @@ public class BatchOperation extends Operation<Long> {
|
||||||
s.append("BATCH ");
|
s.append("BATCH ");
|
||||||
|
|
||||||
if (batch.getDefaultTimestamp() > -9223372036854775808L) {
|
if (batch.getDefaultTimestamp() > -9223372036854775808L) {
|
||||||
s.append("USING TIMESTAMP ").append(String.valueOf(batch.getDefaultTimestamp())).append(" ");
|
s.append("USING TIMESTAMP ").append(String.valueOf(batch.getDefaultTimestamp())).append(" ");
|
||||||
}
|
}
|
||||||
s.append(
|
s.append(
|
||||||
operations
|
operations
|
||||||
|
|
|
@ -17,7 +17,6 @@ package net.helenus.test.integration.core;
|
||||||
|
|
||||||
import net.helenus.core.Helenus;
|
import net.helenus.core.Helenus;
|
||||||
import net.helenus.core.HelenusSession;
|
import net.helenus.core.HelenusSession;
|
||||||
import net.helenus.core.SessionInitializer;
|
|
||||||
import net.helenus.core.UnitOfWork;
|
import net.helenus.core.UnitOfWork;
|
||||||
import net.helenus.test.integration.build.AbstractEmbeddedCassandraTest;
|
import net.helenus.test.integration.build.AbstractEmbeddedCassandraTest;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -34,8 +33,8 @@ public class ContextInitTest extends AbstractEmbeddedCassandraTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testWithNullSession() {
|
public void testWithNullSession() {
|
||||||
HelenusSession session = Helenus.init(null, "foo").get();
|
HelenusSession session = Helenus.init(null, "foo").get();
|
||||||
UnitOfWork uow = session.begin();
|
UnitOfWork uow = session.begin();
|
||||||
uow.abort();
|
uow.abort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue