|
|
@ -327,7 +327,7 @@ public class RedissonLiveObjectServiceTest extends BaseTest {
|
|
|
|
s.<TestREntityIdNested, TestREntity>getOrCreate(TestREntityIdNested.class, t1);
|
|
|
|
s.<TestREntityIdNested, TestREntity>getOrCreate(TestREntityIdNested.class, t1);
|
|
|
|
fail("Should not be here");
|
|
|
|
fail("Should not be here");
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
assertEquals("Field with RId annotation cannot be a type of which class is annotated with REntity.", e.getCause().getMessage());
|
|
|
|
assertEquals("Field with RId annotation cannot be a type of which class is annotated with REntity.", e.getMessage());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -487,14 +487,14 @@ public class RedissonLiveObjectServiceTest extends BaseTest {
|
|
|
|
service.getOrCreate(TestClass.class, new int[]{1, 2, 3, 4, 5});
|
|
|
|
service.getOrCreate(TestClass.class, new int[]{1, 2, 3, 4, 5});
|
|
|
|
fail("Should not be here");
|
|
|
|
fail("Should not be here");
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
assertEquals("RId value cannot be an array.", e.getCause().getMessage());
|
|
|
|
assertEquals("RId value cannot be an array.", e.getMessage());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
service.getOrCreate(TestClass.class, new byte[]{1, 2, 3, 4, 5});
|
|
|
|
service.getOrCreate(TestClass.class, new byte[]{1, 2, 3, 4, 5});
|
|
|
|
fail("Should not be here");
|
|
|
|
fail("Should not be here");
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
assertEquals("RId value cannot be an array.", e.getCause().getMessage());
|
|
|
|
assertEquals("RId value cannot be an array.", e.getMessage());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -659,7 +659,7 @@ public class RedissonLiveObjectServiceTest extends BaseTest {
|
|
|
|
service.delete(TestClass.class, new ObjectId(100));
|
|
|
|
service.delete(TestClass.class, new ObjectId(100));
|
|
|
|
assertFalse(service.isExists(persisted));
|
|
|
|
assertFalse(service.isExists(persisted));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@REntity
|
|
|
|
@REntity
|
|
|
|
public static class TestClassID1 {
|
|
|
|
public static class TestClassID1 {
|
|
|
|
|
|
|
|
|
|
|
@ -673,9 +673,9 @@ public class RedissonLiveObjectServiceTest extends BaseTest {
|
|
|
|
public Long getName() {
|
|
|
|
public Long getName() {
|
|
|
|
return name;
|
|
|
|
return name;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@REntity
|
|
|
|
@REntity
|
|
|
|
public static class TestClassID2 {
|
|
|
|
public static class TestClassID2 {
|
|
|
|
|
|
|
|
|
|
|
@ -689,9 +689,9 @@ public class RedissonLiveObjectServiceTest extends BaseTest {
|
|
|
|
public Long getName() {
|
|
|
|
public Long getName() {
|
|
|
|
return name;
|
|
|
|
return name;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
public void testCreate() {
|
|
|
|
public void testCreate() {
|
|
|
|
RLiveObjectService service = redisson.getLiveObjectService();
|
|
|
|
RLiveObjectService service = redisson.getLiveObjectService();
|
|
|
@ -703,64 +703,64 @@ public class RedissonLiveObjectServiceTest extends BaseTest {
|
|
|
|
TestClassID2 tc2 = service.create(TestClassID2.class);
|
|
|
|
TestClassID2 tc2 = service.create(TestClassID2.class);
|
|
|
|
assertEquals(new Long(1), tc2.getName());
|
|
|
|
assertEquals(new Long(1), tc2.getName());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
public void testTransformation() {
|
|
|
|
public void testTransformation() {
|
|
|
|
RLiveObjectService service = redisson.getLiveObjectService();
|
|
|
|
RLiveObjectService service = redisson.getLiveObjectService();
|
|
|
|
TestClass ts = service.create(TestClass.class);
|
|
|
|
TestClass ts = service.create(TestClass.class);
|
|
|
|
|
|
|
|
|
|
|
|
HashMap<String, String> m = new HashMap();
|
|
|
|
HashMap<String, String> m = new HashMap();
|
|
|
|
ts.setContent(m);
|
|
|
|
ts.setContent(m);
|
|
|
|
assertFalse(HashMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(HashMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
HashSet<String> s = new HashSet();
|
|
|
|
HashSet<String> s = new HashSet();
|
|
|
|
ts.setContent(s);
|
|
|
|
ts.setContent(s);
|
|
|
|
assertFalse(HashSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(HashSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
BitSet bs = new BitSet();
|
|
|
|
BitSet bs = new BitSet();
|
|
|
|
ts.setContent(bs);
|
|
|
|
ts.setContent(bs);
|
|
|
|
assertFalse(BitSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(BitSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RBitSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RBitSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
TreeSet<String> ss = new TreeSet();
|
|
|
|
TreeSet<String> ss = new TreeSet();
|
|
|
|
ts.setContent(ss);
|
|
|
|
ts.setContent(ss);
|
|
|
|
assertFalse(TreeSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(TreeSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RSortedSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RSortedSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
ArrayList<String> al = new ArrayList();
|
|
|
|
ArrayList<String> al = new ArrayList();
|
|
|
|
ts.setContent(al);
|
|
|
|
ts.setContent(al);
|
|
|
|
assertFalse(ArrayList.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(ArrayList.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RList.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RList.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
ConcurrentHashMap<String, String> chm = new ConcurrentHashMap();
|
|
|
|
ConcurrentHashMap<String, String> chm = new ConcurrentHashMap();
|
|
|
|
ts.setContent(chm);
|
|
|
|
ts.setContent(chm);
|
|
|
|
assertFalse(ConcurrentHashMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(ConcurrentHashMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
ArrayBlockingQueue<String> abq = new ArrayBlockingQueue(10);
|
|
|
|
ArrayBlockingQueue<String> abq = new ArrayBlockingQueue(10);
|
|
|
|
ts.setContent(abq);
|
|
|
|
ts.setContent(abq);
|
|
|
|
assertFalse(ArrayBlockingQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(ArrayBlockingQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RBlockingQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RBlockingQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
ConcurrentLinkedQueue<String> clq = new ConcurrentLinkedQueue();
|
|
|
|
ConcurrentLinkedQueue<String> clq = new ConcurrentLinkedQueue();
|
|
|
|
ts.setContent(clq);
|
|
|
|
ts.setContent(clq);
|
|
|
|
assertFalse(ConcurrentLinkedQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(ConcurrentLinkedQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
LinkedBlockingDeque<String> lbdq = new LinkedBlockingDeque();
|
|
|
|
LinkedBlockingDeque<String> lbdq = new LinkedBlockingDeque();
|
|
|
|
ts.setContent(lbdq);
|
|
|
|
ts.setContent(lbdq);
|
|
|
|
assertFalse(LinkedBlockingDeque.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(LinkedBlockingDeque.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RBlockingDeque.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RBlockingDeque.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
LinkedList<String> ll = new LinkedList();
|
|
|
|
LinkedList<String> ll = new LinkedList();
|
|
|
|
ts.setContent(ll);
|
|
|
|
ts.setContent(ll);
|
|
|
|
assertFalse(LinkedList.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(LinkedList.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RDeque.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(RDeque.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@REntity(fieldTransformation = REntity.TransformationMode.IMPLEMENTATION_BASED)
|
|
|
|
@REntity(fieldTransformation = REntity.TransformationMode.IMPLEMENTATION_BASED)
|
|
|
|
public static class TestClassNoTransformation {
|
|
|
|
public static class TestClassNoTransformation {
|
|
|
|
|
|
|
|
|
|
|
@ -831,58 +831,105 @@ public class RedissonLiveObjectServiceTest extends BaseTest {
|
|
|
|
public void testNoTransformation() {
|
|
|
|
public void testNoTransformation() {
|
|
|
|
RLiveObjectService service = redisson.getLiveObjectService();
|
|
|
|
RLiveObjectService service = redisson.getLiveObjectService();
|
|
|
|
TestClassNoTransformation ts = service.create(TestClassNoTransformation.class);
|
|
|
|
TestClassNoTransformation ts = service.create(TestClassNoTransformation.class);
|
|
|
|
|
|
|
|
|
|
|
|
HashMap<String, String> m = new HashMap();
|
|
|
|
HashMap<String, String> m = new HashMap();
|
|
|
|
ts.setContent(m);
|
|
|
|
ts.setContent(m);
|
|
|
|
assertTrue(HashMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(HashMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
HashSet<String> s = new HashSet();
|
|
|
|
HashSet<String> s = new HashSet();
|
|
|
|
ts.setContent(s);
|
|
|
|
ts.setContent(s);
|
|
|
|
assertTrue(HashSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(HashSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
BitSet bs = new BitSet();
|
|
|
|
BitSet bs = new BitSet();
|
|
|
|
ts.setContent(bs);
|
|
|
|
ts.setContent(bs);
|
|
|
|
assertTrue(BitSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(BitSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RBitSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RBitSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
TreeSet<String> ss = new TreeSet();
|
|
|
|
TreeSet<String> ss = new TreeSet();
|
|
|
|
ts.setContent(ss);
|
|
|
|
ts.setContent(ss);
|
|
|
|
assertTrue(TreeSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(TreeSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RSortedSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RSortedSet.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
ArrayList<String> al = new ArrayList();
|
|
|
|
ArrayList<String> al = new ArrayList();
|
|
|
|
ts.setContent(al);
|
|
|
|
ts.setContent(al);
|
|
|
|
assertTrue(ArrayList.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(ArrayList.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RList.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RList.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
ConcurrentHashMap<String, String> chm = new ConcurrentHashMap();
|
|
|
|
ConcurrentHashMap<String, String> chm = new ConcurrentHashMap();
|
|
|
|
ts.setContent(chm);
|
|
|
|
ts.setContent(chm);
|
|
|
|
assertTrue(ConcurrentHashMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(ConcurrentHashMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RMap.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
ArrayBlockingQueue<String> abq = new ArrayBlockingQueue(10);
|
|
|
|
ArrayBlockingQueue<String> abq = new ArrayBlockingQueue(10);
|
|
|
|
abq.add("111");
|
|
|
|
abq.add("111");
|
|
|
|
ts.setContent(abq);
|
|
|
|
ts.setContent(abq);
|
|
|
|
assertTrue(ArrayBlockingQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(ArrayBlockingQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RBlockingQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RBlockingQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
ConcurrentLinkedQueue<String> clq = new ConcurrentLinkedQueue();
|
|
|
|
ConcurrentLinkedQueue<String> clq = new ConcurrentLinkedQueue();
|
|
|
|
ts.setContent(clq);
|
|
|
|
ts.setContent(clq);
|
|
|
|
assertTrue(ConcurrentLinkedQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(ConcurrentLinkedQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RQueue.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
LinkedBlockingDeque<String> lbdq = new LinkedBlockingDeque();
|
|
|
|
LinkedBlockingDeque<String> lbdq = new LinkedBlockingDeque();
|
|
|
|
ts.setContent(lbdq);
|
|
|
|
ts.setContent(lbdq);
|
|
|
|
assertTrue(LinkedBlockingDeque.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(LinkedBlockingDeque.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RBlockingDeque.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RBlockingDeque.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
LinkedList<String> ll = new LinkedList();
|
|
|
|
LinkedList<String> ll = new LinkedList();
|
|
|
|
ts.setContent(ll);
|
|
|
|
ts.setContent(ll);
|
|
|
|
assertTrue(LinkedList.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertTrue(LinkedList.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RDeque.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
assertFalse(RDeque.class.isAssignableFrom(ts.getContent().getClass()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@REntity
|
|
|
|
|
|
|
|
public static class MyObject implements Serializable {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@RId(generator = DistributedAtomicLongIdGenerator.class)
|
|
|
|
|
|
|
|
private Long id;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private Long myId;
|
|
|
|
|
|
|
|
private String name;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public MyObject() {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public MyObject(Long myId) {
|
|
|
|
|
|
|
|
super();
|
|
|
|
|
|
|
|
this.myId = myId;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Long getMyId() {
|
|
|
|
|
|
|
|
return myId;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Long getId() {
|
|
|
|
|
|
|
|
return id;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String getName() {
|
|
|
|
|
|
|
|
return name;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void setName(String name) {
|
|
|
|
|
|
|
|
this.name = name;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void test() {
|
|
|
|
|
|
|
|
RLiveObjectService service = redisson.getLiveObjectService();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MyObject object = new MyObject(20L);
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
service.attach(object);
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
assertEquals("Non-null value is required for the field with RId annotation.", e.getMessage());
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|