Search in sources :

Example 41 with Utf8

use of org.apache.avro.util.Utf8 in project gora by apache.

the class TestSingleFieldValueFilter method testSerialization.

@Test
public void testSerialization() throws IOException {
    SingleFieldValueFilter<String, WebPage> filter = new SingleFieldValueFilter<>();
    //set filter field to url
    filter.setFieldName(WebPage.Field.URL.toString());
    filter.setFilterOp(FilterOp.EQUALS);
    filter.setFilterIfMissing(true);
    filter.getOperands().add(new Utf8("http://example.org"));
    byte[] byteArray = WritableUtils.toByteArray(filter);
    SingleFieldValueFilter<String, WebPage> filter2 = new SingleFieldValueFilter<>();
    filter2.readFields(new DataInputStream(new ByteArrayInputStream(byteArray)));
    assertEquals(filter.getFieldName(), filter2.getFieldName());
    assertEquals(filter.getFilterOp(), filter2.getFilterOp());
    assertArrayEquals(filter.getOperands().toArray(), filter2.getOperands().toArray());
    assertEquals(filter.isFilterIfMissing(), filter2.isFilterIfMissing());
}
Also used : WebPage(org.apache.gora.examples.generated.WebPage) ByteArrayInputStream(java.io.ByteArrayInputStream) Utf8(org.apache.avro.util.Utf8) DataInputStream(java.io.DataInputStream) Test(org.junit.Test)

Example 42 with Utf8

use of org.apache.avro.util.Utf8 in project gora by apache.

the class DataStoreTestUtil method testGetEmployeeDoubleRecursive.

public static void testGetEmployeeDoubleRecursive(DataStore<String, Employee> dataStore) throws Exception {
    Employee employee = DataStoreTestUtil.createEmployee();
    Employee boss = DataStoreTestUtil.createBoss();
    Employee uberBoss = DataStoreTestUtil.createBoss();
    uberBoss.setName(new Utf8("Überboss"));
    boss.setBoss(uberBoss);
    employee.setBoss(boss);
    String ssn = employee.getSsn().toString();
    dataStore.put(ssn, employee);
    dataStore.flush();
    Employee after = dataStore.get(ssn, AvroUtils.getSchemaFieldNames(Employee.SCHEMA$));
    assertEqualEmployeeObjects(employee, after);
}
Also used : Employee(org.apache.gora.examples.generated.Employee) Utf8(org.apache.avro.util.Utf8)

Example 43 with Utf8

use of org.apache.avro.util.Utf8 in project gora by apache.

the class DataStoreTestUtil method testEmptyUpdateEmployee.

public static void testEmptyUpdateEmployee(DataStore<String, Employee> dataStore) throws Exception {
    dataStore.createSchema();
    long ssn = 1234567890L;
    String ssnStr = Long.toString(ssn);
    long now = System.currentTimeMillis();
    Employee employee = dataStore.newPersistent();
    employee.setName(new Utf8("John Doe"));
    employee.setDateOfBirth(now - 20L * YEAR_IN_MS);
    employee.setSalary(100000);
    employee.setSsn(new Utf8(ssnStr));
    dataStore.put(employee.getSsn().toString(), employee);
    dataStore.flush();
    employee = dataStore.get(ssnStr);
    dataStore.put(ssnStr, employee);
    dataStore.flush();
    employee = dataStore.newPersistent();
    dataStore.put(Long.toString(ssn + 1), employee);
    dataStore.flush();
    employee = dataStore.get(Long.toString(ssn + 1));
    assertNull(employee);
}
Also used : Employee(org.apache.gora.examples.generated.Employee) Utf8(org.apache.avro.util.Utf8)

Example 44 with Utf8

use of org.apache.avro.util.Utf8 in project gora by apache.

the class DataStoreTestUtil method testUpdateWebPageRemoveField.

public static void testUpdateWebPageRemoveField(DataStore<String, WebPage> dataStore) throws Exception {
    dataStore.createSchema();
    String[] urls = { "http://a.com/a", "http://b.com/b", "http://c.com/c", "http://d.com/d", "http://e.com/e", "http://f.com/f", "http://g.com/g" };
    String header = "header";
    String[] headers = { "firstHeader", "secondHeader", "thirdHeader", "fourthHeader", "fifthHeader", "sixthHeader" };
    for (String url : urls) {
        WebPage webPage = WebPage.newBuilder().build();
        webPage.setUrl(new Utf8(url));
        webPage.setHeaders(new HashMap<CharSequence, CharSequence>());
        for (int j = 0; j < headers.length; j++) {
            webPage.getHeaders().put(new Utf8(header + j), new Utf8(headers[j]));
        }
        dataStore.put(webPage.getUrl().toString(), webPage);
    }
    dataStore.flush();
    // nullable map field removal test
    for (String url : urls) {
        WebPage webPage = dataStore.get(url);
        webPage.setHeaders(null);
        dataStore.put(webPage.getUrl().toString(), webPage);
    }
    dataStore.flush();
    for (String url : urls) {
        WebPage webPage = dataStore.get(url);
        assertNull(webPage.getHeaders());
    }
}
Also used : WebPage(org.apache.gora.examples.generated.WebPage) Utf8(org.apache.avro.util.Utf8)

Example 45 with Utf8

use of org.apache.avro.util.Utf8 in project gora by apache.

the class CouchDBStore method fromCouchDBMap.

private Object fromCouchDBMap(final Schema fieldSchema, final Field field, final String docf, final Object value) {
    final Map<String, Object> map = (Map<String, Object>) ((Map<String, Object>) value).get(docf);
    final Map<Utf8, Object> rmap = new HashMap<>();
    if (map == null) {
        return new DirtyMapWrapper(rmap);
    }
    for (Map.Entry<String, Object> e : map.entrySet()) {
        Schema innerSchema = fieldSchema.getValueType();
        ;
        Object o = fromDBObject(innerSchema, field, e.getKey(), e.getValue());
        rmap.put(new Utf8(e.getKey()), o);
    }
    return new DirtyMapWrapper<>(rmap);
}
Also used : DirtyMapWrapper(org.apache.gora.persistency.impl.DirtyMapWrapper) Schema(org.apache.avro.Schema) Utf8(org.apache.avro.util.Utf8)

Aggregations

Utf8 (org.apache.avro.util.Utf8)123 Test (org.junit.Test)34 WebPage (org.apache.gora.examples.generated.WebPage)32 GenericRecord (org.apache.avro.generic.GenericRecord)17 Schema (org.apache.avro.Schema)14 GenericData (org.apache.avro.generic.GenericData)13 ByteBuffer (java.nio.ByteBuffer)12 HashMap (java.util.HashMap)12 Map (java.util.Map)12 Employee (org.apache.gora.examples.generated.Employee)11 IOException (java.io.IOException)7 ArrayList (java.util.ArrayList)7 Field (org.apache.avro.Schema.Field)6 Record (org.apache.avro.generic.GenericData.Record)5 File (java.io.File)4 SpecificDatumReader (org.apache.avro.specific.SpecificDatumReader)4 Metadata (org.apache.gora.examples.generated.Metadata)4 ByteArrayInputStream (java.io.ByteArrayInputStream)3 Iterator (java.util.Iterator)3 List (java.util.List)3