Skip to content

Commit

Permalink
refactor: rename packages from com.redislabs.* to com.redis.*
Browse files Browse the repository at this point in the history
  • Loading branch information
bsbodden committed Nov 1, 2021
1 parent 39c862c commit d73e327
Show file tree
Hide file tree
Showing 64 changed files with 263 additions and 230 deletions.
37 changes: 37 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1 +1,38 @@
# spring-integration

## TODO

### Search

- [ ] Implement findByXXXX methods for RediSearch indexed models
- [ ] Handle model return values for Query and Aggregations (add more tests)

### Probabilistic Data Structures

- [ ] Implement Bloom methods for Repositories
- [ ] Review other PDS use cases

### Rate Limiting

- [ ] Design Rate Limiting Annotation for Controller?
- [ ] Determine 3rd party dependencies for Rate Limiting

### Session Management

- [ ] Research if this is already in Spring @Session

### Graph

- [ ] Basic annotations

### Time Series Research

- [ ] Research APIs - Databases

### AI Use Cases

- [ ] Research use cases

### Leaderboards

- [ ] See https://github.com/agoragames/leaderboard
2 changes: 1 addition & 1 deletion redis-spring-modules/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.redislabs.spring</groupId>
<groupId>com.redis.spring</groupId>
<artifactId>redis-spring-modules</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.redislabs.spring;
package com.redis.spring;

import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisKeyValueAdapter;
Expand All @@ -7,7 +7,7 @@
import org.springframework.data.redis.core.mapping.RedisMappingContext;
import org.springframework.lang.Nullable;

import com.redislabs.spring.ops.json.JSONOperations;
import com.redis.spring.ops.json.JSONOperations;

public class RedisJSONKeyValueAdapter extends RedisKeyValueAdapter {
private JSONOperations<?> redisJSONOperations;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.redislabs.spring;
package com.redis.spring;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -25,15 +25,15 @@
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.mapping.RedisMappingContext;

import com.redislabs.spring.annotations.Bloom;
import com.redislabs.spring.annotations.Document;
import com.redislabs.spring.annotations.TagIndexed;
import com.redislabs.spring.annotations.TextIndexed;
import com.redislabs.spring.client.RedisModulesClient;
import com.redislabs.spring.ops.RedisModulesOperations;
import com.redislabs.spring.ops.json.JSONOperations;
import com.redislabs.spring.ops.pds.BloomOperations;
import com.redislabs.spring.ops.search.SearchOperations;
import com.redis.spring.annotations.Bloom;
import com.redis.spring.annotations.Document;
import com.redis.spring.annotations.TagIndexed;
import com.redis.spring.annotations.TextIndexed;
import com.redis.spring.client.RedisModulesClient;
import com.redis.spring.ops.RedisModulesOperations;
import com.redis.spring.ops.json.JSONOperations;
import com.redis.spring.ops.pds.BloomOperations;
import com.redis.spring.ops.search.SearchOperations;

import io.redisearch.FieldName;
import io.redisearch.Schema;
Expand All @@ -46,7 +46,7 @@
@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(RedisProperties.class)
@EnableAspectJAutoProxy
@ComponentScan("com.redislabs.spring.bloom")
@ComponentScan("com.redis.spring.bloom")
public class RedisModulesConfiguration extends CachingConfigurerSupport {

@Bean(name = "redisModulesClient")
Expand All @@ -63,7 +63,7 @@ RedisModulesClient redisModulesClient(JedisConnectionFactory jedisConnectionFact
JSONOperations<?> redisJSONOperations(RedisModulesOperations<?, ?> redisModulesOperations) {
return redisModulesOperations.opsForJSON();
}

@Bean(name = "redisBloomOperations")
BloomOperations<?> redisBloomOperations(RedisModulesOperations<?, ?> redisModulesOperations) {
return redisModulesOperations.opsForBloom();
Expand Down Expand Up @@ -94,53 +94,53 @@ public RedisKeyValueTemplate getRedisJSONKeyValueTemplate(RedisOperations<?, ?>
@EventListener(ContextRefreshedEvent.class)
public void ensureIndexesAreCreated(ContextRefreshedEvent cre) {
System.out.println(">>>> On ContextRefreshedEvent ... Creating Indexes......");

ApplicationContext ac = cre.getApplicationContext();
@SuppressWarnings("unchecked")
RedisModulesOperations<String, String> rmo = (RedisModulesOperations<String, String>) ac.getBean("redisModulesOperations");

ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false);
provider.addIncludeFilter(new AnnotationTypeFilter(Document.class));
for (BeanDefinition beanDef : provider
.findCandidateComponents("com.redislabs.spring.annotations.document.fixtures")) {
.findCandidateComponents("com.redis.spring.annotations.document.fixtures")) {
try {
Class<?> cl = Class.forName(beanDef.getBeanClassName());
//Document document = cl.getAnnotation(Document.class);
System.out.printf(">>>> Found @Document annotated class: %s\n", cl.getSimpleName());


List<Field> fields = new ArrayList<Field>();
for (java.lang.reflect.Field field : cl.getDeclaredFields()) {
System.out.println(">>>> Inspecting field " + field.getName());
// Text
if (field.isAnnotationPresent(TextIndexed.class)) {
System.out.println(">>>>>> FOUND TextIndexed on " + field.getName());
TextIndexed ti = field.getAnnotation(TextIndexed.class);

FieldName fieldName = FieldName.of("$." + field.getName());
if (!ObjectUtils.isEmpty(ti.alias())) {
fieldName = fieldName.as(ti.alias());
}
String phonetic = ObjectUtils.isEmpty(ti.phonetic()) ? null : ti.phonetic();
TextField tf = new TextField(fieldName, ti.weight(), ti.sortable(), ti.nostem(), ti.noindex(), phonetic);

fields.add(tf);
}
// Tag
if (field.isAnnotationPresent(TagIndexed.class)) {
System.out.println(">>>>>> FOUND TagIndexed on " + field.getName());
TagIndexed ti = field.getAnnotation(TagIndexed.class);

FieldName fieldName = FieldName.of("$." + field.getName() + "[*]");
if (!ObjectUtils.isEmpty(ti.alias())) {
fieldName = fieldName.as(ti.alias());
}
Field tf = new Field(fieldName, FieldType.Tag, ti.sortable(), ti.noindex());

fields.add(tf);
}
}

if (!fields.isEmpty()) {
Schema schema = new Schema();
SearchOperations<String> opsForSearch = rmo.opsForSearch(cl.getSimpleName() + "Idx");
Expand All @@ -157,7 +157,7 @@ public void ensureIndexesAreCreated(ContextRefreshedEvent cre) {
}

}

@EventListener(ContextRefreshedEvent.class)
public void processBloom(ContextRefreshedEvent cre) {
System.out.println(">>>> On ContextRefreshedEvent ... Processing Bloom annotations......");
Expand All @@ -169,7 +169,7 @@ public void processBloom(ContextRefreshedEvent cre) {
provider.addIncludeFilter(new AnnotationTypeFilter(Document.class));
provider.addIncludeFilter(new AnnotationTypeFilter(RedisHash.class));
for (BeanDefinition beanDef : provider
.findCandidateComponents("com.redislabs.spring.annotations.bloom.fixtures")) {
.findCandidateComponents("com.redis.spring.annotations.bloom.fixtures")) {
try {
Class<?> cl = Class.forName(beanDef.getBeanClassName());
System.out.printf(">>>> Found @RedisHash / @Document annotated class: %s\n", cl.getSimpleName());
Expand All @@ -190,5 +190,5 @@ public void processBloom(ContextRefreshedEvent cre) {
}
}
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.redislabs.spring.annotations;
package com.redis.spring.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.redislabs.spring.annotations;
package com.redis.spring.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.redislabs.spring.annotations;
package com.redis.spring.annotations;

import java.lang.annotation.ElementType;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.redislabs.spring.annotations;
package com.redis.spring.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
Expand All @@ -24,10 +24,10 @@
import org.springframework.data.repository.query.QueryLookupStrategy;
import org.springframework.data.repository.query.QueryLookupStrategy.Key;

import com.redislabs.spring.repository.configuration.RedisJSONRepositoriesRegistrar;
import com.redislabs.spring.repository.query.RediSearchQuery;
import com.redislabs.spring.repository.query.RediSearchQueryCreator;
import com.redislabs.spring.repository.support.RedisDocumentRepositoryFactoryBean;
import com.redis.spring.repository.configuration.RedisJSONRepositoriesRegistrar;
import com.redis.spring.repository.query.RediSearchQuery;
import com.redis.spring.repository.query.RediSearchQueryCreator;
import com.redis.spring.repository.support.RedisDocumentRepositoryFactoryBean;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.redislabs.spring.annotations;
package com.redis.spring.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.redislabs.spring.annotations;
package com.redis.spring.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.redislabs.spring.annotations;
package com.redis.spring.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.redislabs.spring.annotations;
package com.redis.spring.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.redislabs.spring.annotations;
package com.redis.spring.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.redislabs.spring.bloom;
package com.redis.spring.bloom;

import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
Expand All @@ -14,8 +14,8 @@
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;

import com.redislabs.spring.annotations.Bloom;
import com.redislabs.spring.ops.pds.BloomOperations;
import com.redis.spring.annotations.Bloom;
import com.redis.spring.ops.pds.BloomOperations;

@Aspect
@Component
Expand All @@ -24,55 +24,51 @@ public class BloomAspect implements Ordered {

public BloomAspect(BloomOperations<String> ops) {
this.ops = ops;
System.out.println(">>>> IN BloomAspect constructor...");
}

@Pointcut("execution(public * org.springframework.data.repository.CrudRepository+.save(..))")
public void inCrudRepositorySave() {}

@Pointcut("execution(public * com.redislabs.spring.repository.RedisDocumentRepository+.save(..))")
@Pointcut("execution(public * com.redis.spring.repository.RedisDocumentRepository+.save(..))")
public void inRedisDocumentRepositorySave() {}

@Pointcut("inCrudRepositorySave() || inRedisDocumentRepositorySave()")
private void inSaveOperation() {}

@AfterReturning("inSaveOperation() && args(entity,..)")
public void addToBloom(JoinPoint jp, Object entity) {
System.out.println(">>>> IN addToBloom");
public void addToBloom(JoinPoint jp, Object entity) {
for (Field field : entity.getClass().getDeclaredFields()) {
if (field.isAnnotationPresent(Bloom.class)) {
Bloom bloom = field.getAnnotation(Bloom.class);
String filterName = !ObjectUtils.isEmpty(bloom.name()) ? bloom.name() : String.format("bf:%s:%s", entity.getClass().getSimpleName(), field.getName());
try {
PropertyDescriptor pd = new PropertyDescriptor(field.getName(), entity.getClass());
PropertyDescriptor pd = new PropertyDescriptor(field.getName(), entity.getClass());
ops.add(filterName, pd.getReadMethod().invoke(entity).toString());
} catch (IllegalArgumentException | IllegalAccessException | IntrospectionException | InvocationTargetException e) {
e.printStackTrace();
}

}
}
}

@Pointcut("execution(public * org.springframework.data.repository.CrudRepository+.saveAll(..))")
public void inCrudRepositorySaveAll() {}

@Pointcut("execution(public * com.redislabs.spring.repository.RedisDocumentRepository+.saveAll(..))")
@Pointcut("execution(public * com.redis.spring.repository.RedisDocumentRepository+.saveAll(..))")
public void inRedisDocumentRepositorySaveAll() {}

@Pointcut("inCrudRepositorySaveAll() || inRedisDocumentRepositorySaveAll()")
private void inSaveAllOperation() {}

@AfterReturning("inSaveAllOperation() && args(entities,..)")
public void addAllToBloom(JoinPoint jp, List<Object> entities) {
System.out.println(">>>> IN addAllToBloom");
for (Object entity : entities) {
for (Field field : entity.getClass().getDeclaredFields()) {
if (field.isAnnotationPresent(Bloom.class)) {
Bloom bloom = field.getAnnotation(Bloom.class);
String filterName = !ObjectUtils.isEmpty(bloom.name()) ? bloom.name() : String.format("bf:%s:%s", entity.getClass().getSimpleName(), field.getName());
try {
PropertyDescriptor pd = new PropertyDescriptor(field.getName(), entity.getClass());
PropertyDescriptor pd = new PropertyDescriptor(field.getName(), entity.getClass());
ops.add(filterName, pd.getReadMethod().invoke(entity).toString());
} catch (IllegalArgumentException | IllegalAccessException | IntrospectionException | InvocationTargetException e) {
e.printStackTrace();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.redislabs.spring.client;
package com.redis.spring.client;

import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;

Expand Down
Loading

0 comments on commit d73e327

Please sign in to comment.