use of org.infinispan.test.data.Person in project infinispan by infinispan.
the class JsonKeyValueRawEventsTest method testReceiveKeyValuesAsJson.
public void testReceiveKeyValuesAsJson() throws InterruptedException {
BlockingQueue<KeyValuePair<String, String>> eventsQueue = new LinkedBlockingQueue<>();
DataFormat jsonValues = DataFormat.builder().valueType(APPLICATION_JSON).valueMarshaller(new UTF8StringMarshaller()).build();
RemoteCache<String, Person> cache = remoteCacheManager.getCache();
RemoteCache<String, String> jsonCache = cache.withDataFormat(jsonValues);
jsonCache.addClientListener(new EventListener(eventsQueue, jsonCache.getDataFormat()));
cache.put("1", new Person("John"));
KeyValuePair<String, String> event = eventsQueue.poll(5, TimeUnit.SECONDS);
assertNotNull(event);
assertEquals(event.getKey(), "1");
assertEquals(event.getValue(), "\n{\n \"_type\": \"org.infinispan.test.core.Person\",\n \"name\": \"John\",\n \"birthDate\": 0,\n \"accepted_tos\": false\n}\n");
}
use of org.infinispan.test.data.Person in project infinispan by infinispan.
the class EmbeddedMultimapCacheTest method testGetAndModifyResults.
public void testGetAndModifyResults() {
Person pepe = new Person("Pepe");
await(multimapCache.put(NAMES_KEY, JULIEN).thenCompose(r1 -> multimapCache.put(NAMES_KEY, OIHANA)).thenCompose(r2 -> multimapCache.put(NAMES_KEY, RAMON)).thenCompose(r3 -> multimapCache.get(NAMES_KEY)).thenAccept(v -> {
assertEquals(3, v.size());
List<Person> modifiedList = new ArrayList<>(v);
modifiedList.add(pepe);
assertEquals(3, v.size());
assertEquals(4, modifiedList.size());
}));
await(multimapCache.get(NAMES_KEY).thenAccept(v -> {
assertFalse(v.contains(pepe));
assertEquals(3, v.size());
}));
}
use of org.infinispan.test.data.Person in project infinispan by infinispan.
the class MultimapStoreBucketTest method testMultimapWithJavaSerializationMarshaller.
public void testMultimapWithJavaSerializationMarshaller() throws Exception {
GlobalConfigurationBuilder globalBuilder = new GlobalConfigurationBuilder().nonClusteredDefault();
globalBuilder.defaultCacheName("test");
globalBuilder.serialization().marshaller(new JavaSerializationMarshaller()).allowList().addClass(SuperPerson.class.getName());
ConfigurationBuilder config = new ConfigurationBuilder();
config.persistence().addStore(DummyInMemoryStoreConfigurationBuilder.class);
EmbeddedCacheManager cm = TestCacheManagerFactory.createCacheManager(globalBuilder, config);
MultimapCacheManager<String, Person> multimapCacheManager = EmbeddedMultimapCacheManagerFactory.from(cm);
MultimapCache<String, Person> multimapCache = multimapCacheManager.get("test");
multimapCache.put("k1", new SuperPerson());
PersistenceMarshallerImpl pm = TestingUtil.extractPersistenceMarshaller(cm);
DelegatingUserMarshaller userMarshaller = (DelegatingUserMarshaller) pm.getUserMarshaller();
assertTrue(userMarshaller.getDelegate() instanceof JavaSerializationMarshaller);
assertTrue(pm.getSerializationContext().canMarshall(Bucket.class));
assertTrue(multimapCache.containsKey("k1").get(1, TimeUnit.SECONDS));
}
use of org.infinispan.test.data.Person in project infinispan by infinispan.
the class DataConversionTest method testObjectEncoder.
@Test
public void testObjectEncoder() {
GenericJbossMarshallerEncoder encoder = new GenericJbossMarshallerEncoder(org.infinispan.dataconversion.DataConversionTest.class.getClassLoader());
withCacheManager(new CacheManagerCallable(createCacheManager(new ConfigurationBuilder())) {
GenericJBossMarshaller marshaller = new GenericJBossMarshaller();
private byte[] marshall(Object o) {
try {
return marshaller.objectToByteBuffer(o);
} catch (IOException | InterruptedException e) {
throw new AssertionError("Cannot marshall content", e);
}
}
@Override
public void call() {
GlobalComponentRegistry registry = cm.getGlobalComponentRegistry();
EncoderRegistry encoderRegistry = registry.getComponent(EncoderRegistry.class);
encoderRegistry.registerEncoder(encoder);
cm.getClassAllowList().addClasses(Person.class);
Cache<byte[], byte[]> cache = cm.getCache();
// Write encoded content to the cache
Person key1 = new Person("key1");
Person value1 = new Person("value1");
byte[] encodedKey1 = marshall(key1);
byte[] encodedValue1 = marshall(value1);
cache.put(encodedKey1, encodedValue1);
// Read encoded content
assertEquals(cache.get(encodedKey1), encodedValue1);
// Read with a different valueEncoder
AdvancedCache<Person, Person> encodingCache = (AdvancedCache<Person, Person>) cache.getAdvancedCache().withEncoding(GenericJbossMarshallerEncoder.class);
assertEquals(encodingCache.get(key1), value1);
}
});
}
use of org.infinispan.test.data.Person in project infinispan by infinispan.
the class MigratorConfigurationTest method testInfinipsan8MarshallerAndExternalizersLoaded.
public void testInfinipsan8MarshallerAndExternalizersLoaded() throws Exception {
String externalizers = String.format("%d:%s", 1, PersonExternalizer.class.getName());
Properties properties = createBaseProperties();
properties.put(propKey(SOURCE, VERSION), String.valueOf(8));
properties.put(propKey(SOURCE, MARSHALLER, EXTERNALIZERS), externalizers);
StoreProperties props = new StoreProperties(SOURCE, properties);
Marshaller marshaller = SerializationConfigUtil.getMarshaller(props);
assertNotNull(marshaller);
assertTrue(marshaller instanceof Infinispan8Marshaller);
byte[] bytes = new byte[] { 3, 1, -2, 3, -1, 1, 1 };
Object object = marshaller.objectFromByteBuffer(bytes);
assertNotNull(object);
assertTrue(object instanceof Person);
assertEquals(1, externalizerReadCount.get());
}
Aggregations