Search in sources :

Example 1 with User

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

the class ProtobufJsonScriptTest method testDataAsJSONFromScript.

@Test
public void testDataAsJSONFromScript() throws IOException {
    RemoteCacheManager remoteCacheManager = client(0);
    RemoteCache<Integer, User> cache = remoteCacheManager.getCache();
    User user1 = new UserPB();
    user1.setId(1);
    user1.setName("Tom");
    user1.setSurname("Cat");
    user1.setGender(User.Gender.MALE);
    user1.setAge(33);
    user1.setAccountIds(Collections.singleton(12));
    User user2 = new UserPB();
    user2.setId(2);
    user2.setName("Jane");
    user2.setSurname("Doe");
    user2.setGender(User.Gender.FEMALE);
    user2.setAge(39);
    cache.put(1, user1);
    cache.put(2, user2);
    Query<User> q = Search.getQueryFactory(cache).create("FROM sample_bank_account.User WHERE name = 'Jane'");
    User user = q.execute().list().iterator().next();
    assertEquals("Jane", user.getName());
    registerScript(remoteCacheManager, SCRIPT_NAME);
    // The script will clone an existing user, change some fields and insert into a new user
    User result = cache.execute(SCRIPT_NAME, Collections.emptyMap());
    // Read the user as pojo
    assertEquals(result.getId(), 3);
    assertEquals(result.getName(), "Rex");
    assertEquals((int) result.getAge(), 67);
}
Also used : User(org.infinispan.query.dsl.embedded.testdomain.User) UserPB(org.infinispan.client.hotrod.query.testdomain.protobuf.UserPB) Test(org.testng.annotations.Test) MultiHotRodServersTest(org.infinispan.client.hotrod.test.MultiHotRodServersTest)

Example 2 with User

use of org.infinispan.query.dsl.embedded.testdomain.User 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 3 with User

use of org.infinispan.query.dsl.embedded.testdomain.User 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 4 with User

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

the class RemoteQueryDslPerfTest method populateCache.

@BeforeClass(alwaysRun = true)
protected void populateCache() {
    for (int i = 0; i < WRITE_LOOPS; i++) {
        // create the test objects
        User user1 = new UserHS();
        int id1 = i * 10 + 1;
        user1.setId(id1);
        user1.setName("John" + id1);
        user1.setSurname("Doe" + id1);
        user1.setAge(22);
        user1.setAccountIds(new HashSet<>(Arrays.asList(1, 2)));
        user1.setNotes("Lorem ipsum dolor sit amet");
        User user2 = new UserHS();
        int id2 = i * 10 + 2;
        user2.setId(id2);
        user2.setName("Spider" + id2);
        user2.setSurname("Man" + id2);
        user2.setAccountIds(Collections.singleton(3));
        User user3 = new UserHS();
        int id3 = i * 10 + 3;
        user3.setId(id3);
        user3.setName("Spider" + id3);
        user3.setSurname("Woman" + id3);
        cache.put("user_" + user1.getId(), user1);
        cache.put("user_" + user2.getId(), user2);
        cache.put("user_" + user3.getId(), user3);
    }
}
Also used : User(org.infinispan.query.dsl.embedded.testdomain.User) UserHS(org.infinispan.query.dsl.embedded.testdomain.hsearch.UserHS) BeforeClass(org.testng.annotations.BeforeClass)

Example 5 with User

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

the class RemoteQueryDslPerfTest method testRemoteQueryDslExecution.

public void testRemoteQueryDslExecution() {
    QueryFactory qf = org.infinispan.client.hotrod.Search.getQueryFactory(remoteCache);
    String queryString = "FROM sample_bank_account.User WHERE name = 'John1'";
    final long startTs = System.nanoTime();
    for (int i = 0; i < QUERY_LOOPS; i++) {
        Query<User> q = qf.create(queryString);
        List<User> list = q.execute().list();
        assertEquals(1, list.size());
        assertEquals("John1", list.get(0).getName());
    }
    final long duration = (System.nanoTime() - startTs) / QUERY_LOOPS;
    // this is around 600 us
    System.out.printf("Remote execution took %d us per query\n", TimeUnit.NANOSECONDS.toMicros(duration));
}
Also used : QueryFactory(org.infinispan.query.dsl.QueryFactory) User(org.infinispan.query.dsl.embedded.testdomain.User)

Aggregations

User (org.infinispan.query.dsl.embedded.testdomain.User)135 QueryFactory (org.infinispan.query.dsl.QueryFactory)118 EmbeddedQueryFactory (org.infinispan.query.core.impl.EmbeddedQueryFactory)83 Query (org.infinispan.query.dsl.Query)78 UserPB (org.infinispan.client.hotrod.query.testdomain.protobuf.UserPB)20 Address (org.infinispan.query.dsl.embedded.testdomain.Address)11 ContinuousQueryListener (org.infinispan.query.api.continuous.ContinuousQueryListener)10 UserHS (org.infinispan.query.dsl.embedded.testdomain.hsearch.UserHS)10 MultiHotRodServersTest (org.infinispan.client.hotrod.test.MultiHotRodServersTest)7 Test (org.testng.annotations.Test)7 LinkedBlockingQueue (java.util.concurrent.LinkedBlockingQueue)6 AddressPB (org.infinispan.client.hotrod.query.testdomain.protobuf.AddressPB)6 KeyValuePair (org.infinispan.util.KeyValuePair)6 BeforeClass (org.testng.annotations.BeforeClass)6 ClientListener (org.infinispan.client.hotrod.annotation.ClientListener)4 SerializationContext (org.infinispan.protostream.SerializationContext)4 Account (org.infinispan.query.dsl.embedded.testdomain.Account)3 NotIndexed (org.infinispan.query.dsl.embedded.testdomain.NotIndexed)3 Transaction (org.infinispan.query.dsl.embedded.testdomain.Transaction)3 Instant (java.time.Instant)2