Package org.lilyproject.repository.api

Examples of org.lilyproject.repository.api.TypeManager


    public void setUp() throws InterruptedException {
        hbaseRepository = mock(HBaseRepository.class);
        lilyClient = mock(LilyClient.class);
        recordTable = mock(HTableInterface.class);
        fieldTypes = mock(FieldTypes.class);
        TypeManager typeManager = mock(TypeManager.class);
        when(hbaseRepository.getTypeManager()).thenReturn(typeManager);
        when(typeManager.getFieldTypesSnapshot()).thenReturn(fieldTypes);
        bulkIngester = spy(new BulkIngester(lilyClient, hbaseRepository, recordTable, true));
    }
View Full Code Here


    private static HBaseRepository createHBaseRepository(String repositoryName, String tableName, ZooKeeperItf zk,
                                                         Configuration conf, HBaseTableFactory hbaseTableFactory)
            throws KeeperException, InterruptedException, IOException, RepositoryException {
        RepositoryModel repositoryModel = new RepositoryModelImpl(zk);
        IdGenerator idGenerator = new IdGeneratorImpl();
        TypeManager typeManager = new HBaseTypeManager(idGenerator, conf, zk, hbaseTableFactory);
        RecordFactory recordFactory = new RecordFactoryImpl();

        RepositoryManager repositoryManager = new HBaseRepositoryManager(typeManager, idGenerator,
                recordFactory, hbaseTableFactory, new BlobsNotSupportedBlobManager(), conf, repositoryModel);
        HBaseRepository hbaseRepository;
View Full Code Here

        lilyProxy.getLilyServerProxy().waitOnIndexerRegistry(name, System.currentTimeMillis() + MINS15);
    }

    void configureLilySchema() throws Exception {
        LRepository defaultRepository = lilyProxy.getLilyServerProxy().getClient().getDefaultRepository();
        TypeManager typeManager = defaultRepository.getTypeManager(); //FIXME: if typemanager ever gets split between repos
        FieldType ft1 = typeManager.createFieldType("STRING", fieldtype, Scope.NON_VERSIONED);
        FieldType ft2 = typeManager.createFieldType("LINK", linkField, Scope.NON_VERSIONED);
        typeManager.recordTypeBuilder()
                .defaultNamespace(ns)
                .name(rectype)
                .fieldEntry().use(ft1).add()
                .fieldEntry().use(ft2).add()
                .create();
View Full Code Here

        repoSetup.stop();
    }

    @Test
    public void testFieldTypeCacheInitialization() throws Exception {
        TypeManager newTypeManager = new HBaseTypeManager(repoSetup.getIdGenerator(), repoSetup.getHadoopConf(),
                repoSetup.getZk(), repoSetup.getHbaseTableFactory());
        assertEquals(fieldType1, newTypeManager.getFieldTypeByName(fieldType1.getName()));
        Closer.close(newTypeManager);
    }
View Full Code Here

    public static void print(Record record, LRepository repository) {
        print(record, repository, System.out);
    }

    public static void print(Record record, LRepository repository, PrintStream out) {
        TypeManager typeManager = repository.getTypeManager();

        // Group the fields per scope
        Map<Scope, Map<QName, Object>> fieldsByScope = new EnumMap<Scope, Map<QName, Object>>(Scope.class);
        Map<QName, Object> undeterminedFields = new TreeMap<QName, Object>(QNAME_COMP);

        for (Scope scope : Scope.values()) {
            fieldsByScope.put(scope, new TreeMap<QName, Object>(QNAME_COMP));
        }

        for (Map.Entry<QName, Object> field : record.getFields().entrySet()) {
            FieldType fieldType = null;
            try {
                fieldType = typeManager.getFieldTypeByName(field.getKey());
            } catch (Throwable t) {
                // field type failed to load, ignore
            }

            if (fieldType != null) {
View Full Code Here

    @Override
    public void beforeUpdate(Record record, Record originalRecord, Repository repository, FieldTypes fieldTypes,
            RecordEvent recordEvent) throws RepositoryException, InterruptedException {
        Collection<IndexInfo> indexInfos = indexesInfo.getIndexInfos();
        if (indexInfos.size() > 0) {
            TypeManager typeMgr = repository.getTypeManager();

            RecordEvent.IndexRecordFilterData idxSel = new RecordEvent.IndexRecordFilterData();
            recordEvent.setIndexRecordFilterData(idxSel);

            idxSel.setOldRecordExists(true);
            idxSel.setNewRecordExists(true);

            if (indexesInfo.getRecordFilterDependsOnRecordType()) {
                // Because record type names can change, this is not guaranteed to be the same as what gets
                // stored in the repo, but that doesn't matter as it is only for indexing purposes.
                SchemaId oldRecordTypeId = typeMgr.getRecordTypeByName(originalRecord.getRecordTypeName(), null).getId();
                idxSel.setOldRecordType(oldRecordTypeId);
                // on update, specifying record type is optional
                idxSel.setNewRecordType(record.getRecordTypeName() != null ?
                        typeMgr.getRecordTypeByName(record.getRecordTypeName(), null).getId() : oldRecordTypeId);
            }

            Set<QName> names = indexesInfo.getRecordFilterFieldDependencies();
            for (QName name : names) {
                Object oldValue = null, newValue = null;
View Full Code Here

    public void beforeCreate(Record newRecord, Repository repository, FieldTypes fieldTypes, RecordEvent recordEvent)
            throws RepositoryException, InterruptedException {

        Collection<IndexInfo> indexInfos = indexesInfo.getIndexInfos();
        if (indexInfos.size() > 0) {
            TypeManager typeMgr = repository.getTypeManager();

            RecordEvent.IndexRecordFilterData idxSel = new RecordEvent.IndexRecordFilterData();
            recordEvent.setIndexRecordFilterData(idxSel);

            idxSel.setOldRecordExists(false);
            idxSel.setNewRecordExists(true);

            if (indexesInfo.getRecordFilterDependsOnRecordType()) {
                idxSel.setNewRecordType(typeMgr.getRecordTypeByName(newRecord.getRecordTypeName(), null).getId());
            }

            Set<QName> names = indexesInfo.getRecordFilterFieldDependencies();
            for (QName name : names) {
                if (newRecord.hasField(name)) {
View Full Code Here

    @Override
    public void beforeDelete(Record originalRecord, Repository repository, FieldTypes fieldTypes,
            RecordEvent recordEvent) throws RepositoryException, InterruptedException {
        Collection<IndexInfo> indexInfos = indexesInfo.getIndexInfos();
        if (indexInfos.size() > 0) {
            TypeManager typeMgr = repository.getTypeManager();

            RecordEvent.IndexRecordFilterData idxSel = new RecordEvent.IndexRecordFilterData();
            recordEvent.setIndexRecordFilterData(idxSel);

            idxSel.setOldRecordExists(true);
            idxSel.setNewRecordExists(false);

            if (indexesInfo.getRecordFilterDependsOnRecordType()) {
                idxSel.setOldRecordType(typeMgr.getRecordTypeByName(originalRecord.getRecordTypeName(), null).getId());
            }

            Set<QName> names = indexesInfo.getRecordFilterFieldDependencies();
            for (QName name : names) {
                if (originalRecord.hasField(name)) {
View Full Code Here

    private CacheLoader<String,LRepository> repositoryLoader;

    public static RepositoryManager bootstrapRepositoryManager() {
        TableManager tableManager = new FakeTableManager();
        IdGenerator idGenerator = new IdGeneratorImpl();
        TypeManager typeManager = new FakeTypeManager(idGenerator);
        return new FakeRepositoryManager(
                tableManager,
                typeManager,
                idGenerator,
                new RecordFactoryImpl()
View Full Code Here

    }

    @Test
    public void testRefresh() throws Exception {
        String namespace = "testRefresh";
        TypeManager typeManager = repoSetup.getTypeManager();
        TypeManager typeManager2 = repoSetup.getNewTypeManager();
        typeManagersToClose.add(typeManager2);

        RecordType recordType1 = typeManager.recordTypeBuilder().defaultNamespace(namespace).name("recordType1")
                .fieldEntry().defineField().name("type1").create().add().create();
View Full Code Here

TOP

Related Classes of org.lilyproject.repository.api.TypeManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.