Search in sources :

Example 1 with Address

use of org.infinispan.query.dsl.embedded.testdomain.Address in project infinispan by infinispan.

the class RemoteQueryJmxTest method createUser.

private User createUser(int id) {
    User user = new UserPB();
    user.setId(id);
    user.setName("Tom" + id);
    user.setSurname("Cat" + id);
    user.setGender(User.Gender.MALE);
    user.setAccountIds(Collections.singleton(12));
    Address address = new AddressPB();
    address.setStreet("Dark Alley");
    address.setPostCode("123" + id);
    user.setAddresses(Collections.singletonList(address));
    return user;
}
Also used : User(org.infinispan.query.dsl.embedded.testdomain.User) Address(org.infinispan.query.dsl.embedded.testdomain.Address) AddressPB(org.infinispan.client.hotrod.query.testdomain.protobuf.AddressPB) UserPB(org.infinispan.client.hotrod.query.testdomain.protobuf.UserPB)

Example 2 with Address

use of org.infinispan.query.dsl.embedded.testdomain.Address in project infinispan by infinispan.

the class UserMarshaller method readFrom.

@Override
public UserPB readFrom(ProtoStreamReader reader) throws IOException {
    int id = reader.readInt("id");
    Set<Integer> accountIds = reader.readCollection("accountIds", new HashSet<>(), Integer.class);
    // Read them out of order. It still works but logs a warning!
    String surname = reader.readString("surname");
    String name = reader.readString("name");
    String salutation = reader.readString("salutation");
    List<Address> addresses = reader.readCollection("addresses", new ArrayList<>(), AddressPB.class);
    Integer age = reader.readInt("age");
    User.Gender gender = reader.readEnum("gender", User.Gender.class);
    String notes = reader.readString("notes");
    Instant creationDate = reader.readInstant("creationDate");
    Instant passwordExpirationDate = reader.readInstant("passwordExpirationDate");
    UserPB user = new UserPB();
    user.setId(id);
    user.setAccountIds(accountIds);
    user.setName(name);
    user.setSurname(surname);
    user.setSalutation(salutation);
    user.setAge(age);
    user.setGender(gender);
    user.setAddresses(addresses);
    user.setNotes(notes);
    user.setCreationDate(creationDate);
    user.setPasswordExpirationDate(passwordExpirationDate);
    return user;
}
Also used : User(org.infinispan.query.dsl.embedded.testdomain.User) Address(org.infinispan.query.dsl.embedded.testdomain.Address) Instant(java.time.Instant) UserPB(org.infinispan.client.hotrod.query.testdomain.protobuf.UserPB)

Example 3 with Address

use of org.infinispan.query.dsl.embedded.testdomain.Address in project infinispan by infinispan.

the class MultiHotRodServerQueryTest method populateCache.

@BeforeClass(alwaysRun = true)
protected void populateCache() {
    User user1 = new UserPB();
    user1.setId(1);
    user1.setName("Tom");
    user1.setSurname("Cat");
    user1.setGender(User.Gender.MALE);
    user1.setAge(5);
    user1.setAccountIds(Collections.singleton(12));
    Address address1 = new AddressPB();
    address1.setStreet("Dark Alley");
    address1.setPostCode("1234");
    user1.setAddresses(Collections.singletonList(address1));
    remoteCache0.put(1, user1);
    assertNotNull(remoteCache0.get(1));
    assertNotNull(remoteCache1.get(1));
    User user2 = new UserPB();
    user2.setId(2);
    user2.setName("Adrian");
    user2.setSurname("Nistor");
    user2.setGender(User.Gender.MALE);
    user2.setAge(22);
    Address address2 = new AddressPB();
    address2.setStreet("Old Street");
    address2.setPostCode("XYZ");
    user2.setAddresses(Collections.singletonList(address2));
    remoteCache1.put(2, user2);
    assertNotNull(remoteCache0.get(2));
    assertNotNull(remoteCache1.get(2));
    // this value should be ignored gracefully
    client(0).getCache().put("dummy", "a primitive value cannot be queried");
}
Also used : User(org.infinispan.query.dsl.embedded.testdomain.User) Address(org.infinispan.query.dsl.embedded.testdomain.Address) AddressPB(org.infinispan.client.hotrod.query.testdomain.protobuf.AddressPB) UserPB(org.infinispan.client.hotrod.query.testdomain.protobuf.UserPB) BeforeClass(org.testng.annotations.BeforeClass)

Example 4 with Address

use of org.infinispan.query.dsl.embedded.testdomain.Address in project infinispan by infinispan.

the class EmbeddedUserMarshaller method readFrom.

@Override
public UserHS readFrom(ProtoStreamReader reader) throws IOException {
    int id = reader.readInt("id");
    Set<Integer> accountIds = reader.readCollection("accountIds", new HashSet<>(), Integer.class);
    // Read them out of order. It still works but logs a warning!
    String surname = reader.readString("surname");
    String name = reader.readString("name");
    String salutation = reader.readString("salutation");
    List<Address> addresses = reader.readCollection("addresses", new ArrayList<>(), AddressHS.class);
    Integer age = reader.readInt("age");
    User.Gender gender = reader.readEnum("gender", User.Gender.class);
    String notes = reader.readString("notes");
    Instant creationDate = reader.readInstant("creationDate");
    Instant passwordExpirationDate = reader.readInstant("passwordExpirationDate");
    UserHS user = new UserHS();
    user.setId(id);
    user.setAccountIds(accountIds);
    user.setName(name);
    user.setSurname(surname);
    user.setSalutation(salutation);
    user.setAge(age);
    user.setGender(gender);
    user.setAddresses(addresses);
    user.setNotes(notes);
    user.setCreationDate(creationDate);
    user.setPasswordExpirationDate(passwordExpirationDate);
    return user;
}
Also used : User(org.infinispan.query.dsl.embedded.testdomain.User) Address(org.infinispan.query.dsl.embedded.testdomain.Address) UserHS(org.infinispan.query.dsl.embedded.testdomain.hsearch.UserHS) Instant(java.time.Instant)

Example 5 with Address

use of org.infinispan.query.dsl.embedded.testdomain.Address in project infinispan by infinispan.

the class RemoteListenerWithDslFilterTest method testEventFilter.

public void testEventFilter() {
    User user1 = new UserPB();
    user1.setId(1);
    user1.setName("John");
    user1.setSurname("Doe");
    user1.setGender(User.Gender.MALE);
    user1.setAge(22);
    user1.setAccountIds(new HashSet<>(Arrays.asList(1, 2)));
    user1.setNotes("Lorem ipsum dolor sit amet");
    Address address1 = new AddressPB();
    address1.setStreet("Main Street");
    address1.setPostCode("X1234");
    user1.setAddresses(Collections.singletonList(address1));
    User user2 = new UserPB();
    user2.setId(2);
    user2.setName("Spider");
    user2.setSurname("Man");
    user2.setGender(User.Gender.MALE);
    user2.setAge(32);
    user2.setAccountIds(Collections.singleton(3));
    Address address2 = new AddressPB();
    address2.setStreet("Old Street");
    address2.setPostCode("Y12");
    Address address3 = new AddressPB();
    address3.setStreet("Bond Street");
    address3.setPostCode("ZZ");
    user2.setAddresses(Arrays.asList(address2, address3));
    User user3 = new UserPB();
    user3.setId(3);
    user3.setName("Spider");
    user3.setSurname("Woman");
    user3.setGender(User.Gender.FEMALE);
    user3.setAge(31);
    remoteCache.clear();
    remoteCache.put("user_" + user1.getId(), user1);
    remoteCache.put("user_" + user2.getId(), user2);
    remoteCache.put("user_" + user3.getId(), user3);
    assertEquals(3, remoteCache.size());
    SerializationContext serCtx = MarshallerUtil.getSerializationContext(client(0));
    QueryFactory qf = Search.getQueryFactory(remoteCache);
    Query<Object[]> query = qf.<Object[]>create("SELECT age FROM sample_bank_account.User WHERE age <= :ageParam").setParameter("ageParam", 32);
    ClientEntryListener listener = new ClientEntryListener(serCtx);
    ClientEvents.addClientQueryListener(remoteCache, listener, query);
    expectElementsInQueue(listener.createEvents, 3);
    user3.setAge(40);
    remoteCache.put("user_" + user1.getId(), user1);
    remoteCache.put("user_" + user2.getId(), user2);
    remoteCache.put("user_" + user3.getId(), user3);
    assertEquals(3, remoteCache.size());
    expectElementsInQueue(listener.modifyEvents, 2);
    remoteCache.removeClientListener(listener);
}
Also used : SerializationContext(org.infinispan.protostream.SerializationContext) QueryFactory(org.infinispan.query.dsl.QueryFactory) User(org.infinispan.query.dsl.embedded.testdomain.User) Address(org.infinispan.query.dsl.embedded.testdomain.Address) AddressPB(org.infinispan.client.hotrod.query.testdomain.protobuf.AddressPB) UserPB(org.infinispan.client.hotrod.query.testdomain.protobuf.UserPB)

Aggregations

Address (org.infinispan.query.dsl.embedded.testdomain.Address)11 User (org.infinispan.query.dsl.embedded.testdomain.User)11 UserPB (org.infinispan.client.hotrod.query.testdomain.protobuf.UserPB)7 AddressPB (org.infinispan.client.hotrod.query.testdomain.protobuf.AddressPB)6 BeforeClass (org.testng.annotations.BeforeClass)5 NotIndexed (org.infinispan.query.dsl.embedded.testdomain.NotIndexed)3 Transaction (org.infinispan.query.dsl.embedded.testdomain.Transaction)3 Instant (java.time.Instant)2 SerializationContext (org.infinispan.protostream.SerializationContext)2 QueryFactory (org.infinispan.query.dsl.QueryFactory)2 Account (org.infinispan.query.dsl.embedded.testdomain.Account)2 UserHS (org.infinispan.query.dsl.embedded.testdomain.hsearch.UserHS)2 TheEntity (org.infinispan.query.dsl.embedded.impl.model.TheEntity)1 Author (org.infinispan.query.dsl.embedded.testdomain.Author)1 Book (org.infinispan.query.dsl.embedded.testdomain.Book)1 AccountHS (org.infinispan.query.dsl.embedded.testdomain.hsearch.AccountHS)1 AddressHS (org.infinispan.query.dsl.embedded.testdomain.hsearch.AddressHS)1 TransactionHS (org.infinispan.query.dsl.embedded.testdomain.hsearch.TransactionHS)1