keycloak-aplcache
Changes
model/mongo/src/main/java/org/keycloak/models/mongo/api/context/MongoStoreInvocationContext.java 8(+4 -4)
model/mongo/src/main/java/org/keycloak/models/mongo/impl/context/SimpleMongoStoreInvocationContext.java 10(+5 -5)
model/mongo/src/main/java/org/keycloak/models/mongo/impl/context/TransactionMongoStoreInvocationContext.java 16(+8 -8)
Details
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/api/context/MongoStoreInvocationContext.java b/model/mongo/src/main/java/org/keycloak/models/mongo/api/context/MongoStoreInvocationContext.java
index 358f445..1ec250a 100644
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/api/context/MongoStoreInvocationContext.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/api/context/MongoStoreInvocationContext.java
@@ -10,15 +10,15 @@ import org.keycloak.models.mongo.api.MongoStore;
*/
public interface MongoStoreInvocationContext {
- void addCreatedObject(MongoIdentifiableEntity entity);
+ void addCreatedEntity(MongoIdentifiableEntity entity);
- void addLoadedObject(MongoIdentifiableEntity entity);
+ void addLoadedEntity(MongoIdentifiableEntity entity);
- <T extends MongoIdentifiableEntity> T getLoadedObject(Class<T> type, String id);
+ <T extends MongoIdentifiableEntity> T getLoadedEntity(Class<T> type, String id);
void addUpdateTask(MongoIdentifiableEntity entityToUpdate, MongoTask task);
- void addRemovedObject(MongoIdentifiableEntity entityToRemove);
+ void addRemovedEntity(MongoIdentifiableEntity entity);
void beforeDBSearch(Class<? extends MongoIdentifiableEntity> entityType);
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/api/context/MongoTask.java b/model/mongo/src/main/java/org/keycloak/models/mongo/api/context/MongoTask.java
index 0c1d500..555e756 100644
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/api/context/MongoTask.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/api/context/MongoTask.java
@@ -1,7 +1,5 @@
package org.keycloak.models.mongo.api.context;
-import org.keycloak.models.mongo.api.MongoStore;
-
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/api/types/Mapper.java b/model/mongo/src/main/java/org/keycloak/models/mongo/api/types/Mapper.java
index c93acde..afb0578 100644
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/api/types/Mapper.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/api/types/Mapper.java
@@ -2,7 +2,7 @@ package org.keycloak.models.mongo.api.types;
/**
* SPI object to convert object from application type to database type and vice versa. Shouldn't be directly used by application.
- * Various mappers should be registered in TypeMapper, which is main entry point to be used by application
+ * Various mappers should be registered in MapperRegistry, which is main entry point to be used by application
*
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/api/types/MapperContext.java b/model/mongo/src/main/java/org/keycloak/models/mongo/api/types/MapperContext.java
index 987f18b..b4a8135 100644
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/api/types/MapperContext.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/api/types/MapperContext.java
@@ -10,7 +10,7 @@ public class MapperContext<T, S> {
// object to convert
private final T objectToConvert;
- // expected return type, which could be useful information in some converters, so they are able to dynamically instantiate types
+ // expected return type, which could be useful information in some mappers, so they are able to dynamically instantiate types
private final Class<? extends S> expectedReturnType;
// in case that expected return type is generic type (like "List<String>"), then genericTypes could contain list of expected generic arguments
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/api/types/MapperRegistry.java b/model/mongo/src/main/java/org/keycloak/models/mongo/api/types/MapperRegistry.java
index 2c1c270..6da24b7 100755
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/api/types/MapperRegistry.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/api/types/MapperRegistry.java
@@ -83,7 +83,7 @@ public class MapperRegistry {
throw new IllegalArgumentException("Converter " + mapper + " has return type " + mapper.getExpectedReturnType() +
" but we need type " + expectedDBObjectType);
}
- return mapper.convertObject(new MapperContext(applicationObject, expectedDBObjectType, null));
+ return mapper.convertObject(new MapperContext<Object, S>(applicationObject, expectedDBObjectType, null));
}
// Try to find converter for given type or all it's supertypes
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/context/SimpleMongoStoreInvocationContext.java b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/context/SimpleMongoStoreInvocationContext.java
index b0c871d..f28e7ef 100644
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/context/SimpleMongoStoreInvocationContext.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/context/SimpleMongoStoreInvocationContext.java
@@ -20,15 +20,15 @@ public class SimpleMongoStoreInvocationContext implements MongoStoreInvocationCo
}
@Override
- public void addCreatedObject(MongoIdentifiableEntity entity) {
+ public void addCreatedEntity(MongoIdentifiableEntity entity) {
}
@Override
- public void addLoadedObject(MongoIdentifiableEntity entity) {
+ public void addLoadedEntity(MongoIdentifiableEntity entity) {
}
@Override
- public <T extends MongoIdentifiableEntity> T getLoadedObject(Class<T> type, String id) {
+ public <T extends MongoIdentifiableEntity> T getLoadedEntity(Class<T> type, String id) {
return null;
}
@@ -38,8 +38,8 @@ public class SimpleMongoStoreInvocationContext implements MongoStoreInvocationCo
}
@Override
- public void addRemovedObject(MongoIdentifiableEntity entityToRemove) {
- entityToRemove.afterRemove(this);
+ public void addRemovedEntity(MongoIdentifiableEntity entity) {
+ entity.afterRemove(this);
}
@Override
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/context/TransactionMongoStoreInvocationContext.java b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/context/TransactionMongoStoreInvocationContext.java
index 5d5ff08..b88862c 100644
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/context/TransactionMongoStoreInvocationContext.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/context/TransactionMongoStoreInvocationContext.java
@@ -33,18 +33,18 @@ public class TransactionMongoStoreInvocationContext implements MongoStoreInvocat
}
@Override
- public void addCreatedObject(MongoIdentifiableEntity entity) {
+ public void addCreatedEntity(MongoIdentifiableEntity entity) {
// For now just add it to list of loaded objects
- addLoadedObject(entity);
+ addLoadedEntity(entity);
}
@Override
- public void addLoadedObject(MongoIdentifiableEntity entity) {
+ public void addLoadedEntity(MongoIdentifiableEntity entity) {
loadedObjects.put(entity.getId(), entity);
}
@Override
- public <T extends MongoIdentifiableEntity> T getLoadedObject(Class<T> type, String id) {
+ public <T extends MongoIdentifiableEntity> T getLoadedEntity(Class<T> type, String id) {
return (T)loadedObjects.get(id);
}
@@ -76,12 +76,12 @@ public class TransactionMongoStoreInvocationContext implements MongoStoreInvocat
}
@Override
- public void addRemovedObject(MongoIdentifiableEntity entityToRemove) {
+ public void addRemovedEntity(MongoIdentifiableEntity entity) {
// Remove all pending tasks and object from cache
- pendingUpdateTasks.remove(entityToRemove);
- loadedObjects.remove(entityToRemove.getId());
+ pendingUpdateTasks.remove(entity);
+ loadedObjects.remove(entity.getId());
- entityToRemove.afterRemove(this);
+ entity.afterRemove(this);
}
@Override
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/EntityInfo.java b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/EntityInfo.java
index 66eda95..eedb4a7 100755
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/EntityInfo.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/EntityInfo.java
@@ -14,14 +14,14 @@ import java.util.Map;
*/
public class EntityInfo {
- private final Class<? extends MongoEntity> objectClass;
+ private final Class<? extends MongoEntity> entityClass;
private final String dbCollectionName;
private final Map<String, Property<Object>> properties;
- public EntityInfo(Class<? extends MongoEntity> objectClass, String dbCollectionName, List<Property<Object>> properties) {
- this.objectClass = objectClass;
+ public EntityInfo(Class<? extends MongoEntity> entityClass, String dbCollectionName, List<Property<Object>> properties) {
+ this.entityClass = entityClass;
this.dbCollectionName = dbCollectionName;
Map<String, Property<Object>> props= new HashMap<String, Property<Object>>();
@@ -31,8 +31,8 @@ public class EntityInfo {
this.properties = Collections.unmodifiableMap(props);
}
- public Class<? extends MongoEntity> getObjectClass() {
- return objectClass;
+ public Class<? extends MongoEntity> getEntityClass() {
+ return entityClass;
}
public String getDbCollectionName() {
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/MongoStoreImpl.java b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/MongoStoreImpl.java
index 0bbc094..f0e135e 100755
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/MongoStoreImpl.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/MongoStoreImpl.java
@@ -132,8 +132,8 @@ public class MongoStoreImpl implements MongoStore {
entity.setId(dbObject.getString("_id"));
}
- // Treat object as if it is read (It is already submited to transaction)
- context.addLoadedObject(entity);
+ // Treat object as created in this transaction (It is already submited to transaction)
+ context.addCreatedEntity(entity);
}
@Override
@@ -171,7 +171,7 @@ public class MongoStoreImpl implements MongoStore {
@Override
public <T extends MongoIdentifiableEntity> T loadEntity(Class<T> type, String id, MongoStoreInvocationContext context) {
// First look if we already read the object with this oid and type during this transaction. If yes, use it instead of DB lookup
- T cached = context.getLoadedObject(type, id);
+ T cached = context.getLoadedEntity(type, id);
if (cached != null) return cached;
DBCollection dbCollection = getDBCollectionForType(type);
@@ -185,7 +185,7 @@ public class MongoStoreImpl implements MongoStore {
T converted = mapperRegistry.convertDBObjectToApplicationObject(mapperContext);
// Now add it to loaded objects
- context.addLoadedObject(converted);
+ context.addLoadedEntity(converted);
return converted;
}
@@ -234,7 +234,7 @@ public class MongoStoreImpl implements MongoStore {
dbCollection.remove(dbQuery);
logger.info("Entity of type: " + type + ", id: " + id + " removed from MongoDB.");
- context.addRemovedObject(found);
+ context.addRemovedEntity(found);
return true;
}
}
@@ -251,7 +251,7 @@ public class MongoStoreImpl implements MongoStore {
logger.info("Removed " + foundObjects.size() + " entities of type: " + type + ", query: " + query);
for (MongoIdentifiableEntity found : foundObjects) {
- context.addRemovedObject(found);;
+ context.addRemovedEntity(found);;
}
return true;
}
@@ -359,17 +359,17 @@ public class MongoStoreImpl implements MongoStore {
mapperRegistry.addDBObjectMapper(mapper);
}
- public EntityInfo getEntityInfo(Class<? extends MongoEntity> objectClass) {
- EntityInfo entityInfo = entityInfoCache.get(objectClass);
+ public EntityInfo getEntityInfo(Class<? extends MongoEntity> entityClass) {
+ EntityInfo entityInfo = entityInfoCache.get(entityClass);
if (entityInfo == null) {
- List<Property<Object>> properties = PropertyQueries.createQuery(objectClass).addCriteria(new AnnotatedPropertyCriteria(MongoField.class)).getResultList();
+ List<Property<Object>> properties = PropertyQueries.createQuery(entityClass).addCriteria(new AnnotatedPropertyCriteria(MongoField.class)).getResultList();
- MongoCollection classAnnotation = objectClass.getAnnotation(MongoCollection.class);
+ MongoCollection classAnnotation = entityClass.getAnnotation(MongoCollection.class);
String dbCollectionName = classAnnotation==null ? null : classAnnotation.collectionName();
- entityInfo = new EntityInfo(objectClass, dbCollectionName, properties);
+ entityInfo = new EntityInfo(entityClass, dbCollectionName, properties);
- EntityInfo existing = entityInfoCache.putIfAbsent(objectClass, entityInfo);
+ EntityInfo existing = entityInfoCache.putIfAbsent(entityClass, entityInfo);
if (existing != null) {
entityInfo = existing;
}
@@ -385,16 +385,16 @@ public class MongoStoreImpl implements MongoStore {
for (DBObject dbObject : cursor) {
// First look if we already have loaded object cached. If yes, we will use cached instance
String id = dbObject.get("_id").toString();
- T object = context.getLoadedObject(type, id);
+ T entity = context.getLoadedEntity(type, id);
- if (object == null) {
+ if (entity == null) {
// So convert and use fresh instance from DB
MapperContext<Object, T> mapperContext = new MapperContext<Object, T>(dbObject, type, null);
- object = mapperRegistry.convertDBObjectToApplicationObject(mapperContext);
- context.addLoadedObject(object);
+ entity = mapperRegistry.convertDBObjectToApplicationObject(mapperContext);
+ context.addLoadedEntity(entity);
}
- result.add(object);
+ result.add(entity);
}
} finally {
cursor.close();
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/BasicDBObjectMapper.java b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/BasicDBObjectMapper.java
index bd423e0..19cfa06 100644
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/BasicDBObjectMapper.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/BasicDBObjectMapper.java
@@ -26,12 +26,12 @@ public class BasicDBObjectMapper<S extends MongoEntity> implements Mapper<BasicD
private final MongoStoreImpl mongoStoreImpl;
private final MapperRegistry mapperRegistry;
- private final Class<S> expectedObjectType;
+ private final Class<S> expectedEntityType;
- public BasicDBObjectMapper(MongoStoreImpl mongoStoreImpl, MapperRegistry mapperRegistry, Class<S> expectedObjectType) {
+ public BasicDBObjectMapper(MongoStoreImpl mongoStoreImpl, MapperRegistry mapperRegistry, Class<S> expectedEntityType) {
this.mongoStoreImpl = mongoStoreImpl;
this.mapperRegistry = mapperRegistry;
- this.expectedObjectType = expectedObjectType;
+ this.expectedEntityType = expectedEntityType;
}
@Override
@@ -41,11 +41,11 @@ public class BasicDBObjectMapper<S extends MongoEntity> implements Mapper<BasicD
return null;
}
- EntityInfo entityInfo = mongoStoreImpl.getEntityInfo(expectedObjectType);
+ EntityInfo entityInfo = mongoStoreImpl.getEntityInfo(expectedEntityType);
- S object;
+ S entity;
try {
- object = expectedObjectType.newInstance();
+ entity = expectedEntityType.newInstance();
} catch (Exception e) {
throw new RuntimeException(e);
}
@@ -56,30 +56,30 @@ public class BasicDBObjectMapper<S extends MongoEntity> implements Mapper<BasicD
if ("_id".equals(key)) {
// Current property is "id"
- if (object instanceof MongoIdentifiableEntity) {
- ((MongoIdentifiableEntity)object).setId(value.toString());
+ if (entity instanceof MongoIdentifiableEntity) {
+ ((MongoIdentifiableEntity)entity).setId(value.toString());
}
} else if ((property = entityInfo.getPropertyByName(key)) != null) {
// It's declared property with @DBField annotation
- setPropertyValue(object, value, property);
+ setPropertyValue(entity, value, property);
} else {
// Show warning if it's unknown
- logger.warn("Property with key " + key + " not known for type " + expectedObjectType);
+ logger.warn("Property with key " + key + " not known for type " + expectedEntityType);
}
}
- return object;
+ return entity;
}
- private void setPropertyValue(MongoEntity object, Object valueFromDB, Property property) {
+ private void setPropertyValue(MongoEntity entity, Object valueFromDB, Property property) {
if (valueFromDB == null) {
- property.setValue(object, null);
+ property.setValue(entity, null);
return;
}
- MapperContext<Object, ?> context;
+ MapperContext<Object, Object> context;
Type type = property.getBaseType();
@@ -105,10 +105,10 @@ public class BasicDBObjectMapper<S extends MongoEntity> implements Mapper<BasicD
Object appObject = mapperRegistry.convertDBObjectToApplicationObject(context);
if (Types.boxedClass(property.getJavaClass()).isAssignableFrom(appObject.getClass())) {
- property.setValue(object, appObject);
+ property.setValue(entity, appObject);
} else {
throw new IllegalStateException("Converted object " + appObject + " is not of type " + context.getExpectedReturnType() +
- ". So can't be assigned as property " + property.getName() + " of " + object.getClass());
+ ". So can't be assigned as property " + property.getName() + " of " + entity.getClass());
}
}
@@ -119,6 +119,6 @@ public class BasicDBObjectMapper<S extends MongoEntity> implements Mapper<BasicD
@Override
public Class<S> getExpectedReturnType() {
- return expectedObjectType;
+ return expectedEntityType;
}
}
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/BasicDBObjectToMapMapper.java b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/BasicDBObjectToMapMapper.java
index 47e8d3c..eaf091a 100644
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/BasicDBObjectToMapMapper.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/BasicDBObjectToMapMapper.java
@@ -8,7 +8,7 @@ import org.keycloak.models.mongo.api.types.Mapper;
import org.keycloak.models.mongo.api.types.MapperContext;
/**
- * For now, we support just convert to Map<String, String>
+ * For now, there is support just for convert to Map<String, String>
*
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
@@ -16,10 +16,10 @@ public class BasicDBObjectToMapMapper implements Mapper<BasicDBObject, Map> {
@Override
public Map convertObject(MapperContext<BasicDBObject, Map> context) {
- BasicDBObject objectToConvert = context.getObjectToConvert();
+ BasicDBObject dbObjectToConvert = context.getObjectToConvert();
HashMap<String, String> result = new HashMap<String, String>();
- for (Map.Entry<String, Object> entry : objectToConvert.entrySet()) {
+ for (Map.Entry<String, Object> entry : dbObjectToConvert.entrySet()) {
String key = entry.getKey();
String value = (String)entry.getValue();
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/EnumToStringMapper.java b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/EnumToStringMapper.java
index a66633c..a2fd148 100644
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/EnumToStringMapper.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/EnumToStringMapper.java
@@ -8,7 +8,6 @@ import org.keycloak.models.mongo.api.types.MapperContext;
*/
public class EnumToStringMapper implements Mapper<Enum, String> {
- // It will be saved in form of "org.keycloak.Gender#MALE" so it's possible to parse enumType out of it
@Override
public String convertObject(MapperContext<Enum, String> context) {
Enum objectToConvert = context.getObjectToConvert();
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/MongoEntityMapper.java b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/MongoEntityMapper.java
index 3514e6e..8fb29eb 100755
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/MongoEntityMapper.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/types/MongoEntityMapper.java
@@ -32,7 +32,7 @@ public class MongoEntityMapper<T extends MongoEntity> implements Mapper<T, Basic
EntityInfo entityInfo = mongoStoreImpl.getEntityInfo(applicationObject.getClass());
- // Create instance of BasicDBObject and add all declared properties to it (properties with null value probably should be skipped)
+ // Create instance of BasicDBObject and add all declared properties to it
BasicDBObject dbObject = new BasicDBObject();
Collection<Property<Object>> props = entityInfo.getProperties();
for (Property<Object> property : props) {