当前位置: 首页>>代码示例>>Java>>正文


Java SchemaVersionKey类代码示例

本文整理汇总了Java中com.hortonworks.registries.schemaregistry.SchemaVersionKey的典型用法代码示例。如果您正苦于以下问题:Java SchemaVersionKey类的具体用法?Java SchemaVersionKey怎么用?Java SchemaVersionKey使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


SchemaVersionKey类属于com.hortonworks.registries.schemaregistry包,在下文中一共展示了SchemaVersionKey类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: handleSchemaIdVersionResponse

import com.hortonworks.registries.schemaregistry.SchemaVersionKey; //导入依赖的package包/类
private SchemaIdVersion handleSchemaIdVersionResponse(SchemaMetadataInfo schemaMetadataInfo,
                                                      Response response) throws IncompatibleSchemaException, InvalidSchemaException {
    int status = response.getStatus();
    String msg = response.readEntity(String.class);
    if (status == Response.Status.BAD_REQUEST.getStatusCode() || status == Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()) {
        CatalogResponse catalogResponse = readCatalogResponse(msg);
        if (CatalogResponse.ResponseMessage.INCOMPATIBLE_SCHEMA.getCode() == catalogResponse.getResponseCode()) {
            throw new IncompatibleSchemaException(catalogResponse.getResponseMessage());
        } else if (CatalogResponse.ResponseMessage.INVALID_SCHEMA.getCode() == catalogResponse.getResponseCode()) {
            throw new InvalidSchemaException(catalogResponse.getResponseMessage());
        } else {
            throw new RuntimeException(catalogResponse.getResponseMessage());
        }

    }

    Integer version = readEntity(msg, Integer.class);

    SchemaVersionInfo schemaVersionInfo = doGetSchemaVersionInfo(new SchemaVersionKey(schemaMetadataInfo.getSchemaMetadata()
                                                                                                        .getName(), version));

    return new SchemaIdVersion(schemaMetadataInfo.getId(), version, schemaVersionInfo.getId());
}
 
开发者ID:hortonworks,项目名称:registry,代码行数:24,代码来源:SchemaRegistryClient.java

示例2: doGetSchemaVersionInfo

import com.hortonworks.registries.schemaregistry.SchemaVersionKey; //导入依赖的package包/类
private SchemaVersionInfo doGetSchemaVersionInfo(SchemaIdVersion schemaIdVersion) throws SchemaNotFoundException {
    if (schemaIdVersion.getSchemaVersionId() != null) {
        LOG.info("Getting schema version from target registry for [{}]", schemaIdVersion.getSchemaVersionId());
        return getEntity(currentSchemaRegistryTargets()
                                 .schemaVersionsByIdTarget
                                 .path(schemaIdVersion.getSchemaVersionId().toString()),
                         SchemaVersionInfo.class);
    } else if (schemaIdVersion.getSchemaMetadataId() != null) {
        SchemaMetadataInfo schemaMetadataInfo = getSchemaMetadataInfo(schemaIdVersion.getSchemaMetadataId());
        SchemaVersionKey schemaVersionKey = new SchemaVersionKey(schemaMetadataInfo.getSchemaMetadata()
                                                                                   .getName(), schemaIdVersion.getVersion());
        LOG.info("Getting schema version from target registry for key [{}]", schemaVersionKey);
        return doGetSchemaVersionInfo(schemaVersionKey);
    }

    throw new IllegalArgumentException("Given argument not valid: " + schemaIdVersion);
}
 
开发者ID:hortonworks,项目名称:registry,代码行数:18,代码来源:SchemaRegistryClient.java

示例3: buildDeserializedObject

import com.hortonworks.registries.schemaregistry.SchemaVersionKey; //导入依赖的package包/类
/**
 * Builds the deserialized object from the given {@code payloadInputStream} and applying writer and reader schemas
 * from the respective given versions.
 *
 * @param protocolId          protocol id
 * @param payloadInputStream  payload
 * @param schemaMetadata      metadata about schema
 * @param writerSchemaVersion schema version of the writer
 * @param readerSchemaVersion schema version to be applied for reading or projection
 * @return the deserialized object
 * @throws SerDesException when any ser/des error occurs
 */
protected Object buildDeserializedObject(byte protocolId,
                                         InputStream payloadInputStream,
                                         SchemaMetadata schemaMetadata,
                                         Integer writerSchemaVersion,
                                         Integer readerSchemaVersion) throws SerDesException {
    Object deserializedObj;
    String schemaName = schemaMetadata.getName();
    SchemaVersionKey writerSchemaVersionKey = new SchemaVersionKey(schemaName, writerSchemaVersion);
    LOG.debug("SchemaKey: [{}] for the received payload", writerSchemaVersionKey);
    Schema writerSchema = getSchema(writerSchemaVersionKey);
    if (writerSchema == null) {
        throw new RegistryException("No schema exists with metadata-key: " + schemaMetadata + " and writerSchemaVersion: " + writerSchemaVersion);
    }
    Schema readerSchema = readerSchemaVersion != null ? getSchema(new SchemaVersionKey(schemaName, readerSchemaVersion)) : null;

    deserializedObj = deserializePayloadForProtocol(protocolId, payloadInputStream, writerSchema, readerSchema);

    return deserializedObj;
}
 
开发者ID:hortonworks,项目名称:registry,代码行数:32,代码来源:AbstractAvroSnapshotDeserializer.java

示例4: traverseIncludedSchemaTypes

import com.hortonworks.registries.schemaregistry.SchemaVersionKey; //导入依赖的package包/类
private Map<String, Schema> traverseIncludedSchemaTypes(String schemaText,
                                                        Map<String, SchemaParsingState> schemaParsingStates)
        throws InvalidSchemaException, SchemaNotFoundException {
    List<SchemaVersionKey> includedSchemaVersions = getIncludedSchemaVersions(schemaText);

    if (includedSchemaVersions == null || includedSchemaVersions.isEmpty()) {
        return Collections.emptyMap();
    }
    Map<String, Schema> schemaTypes = new HashMap<>();
    for (SchemaVersionKey schemaVersionKey : includedSchemaVersions) {
        Map<String, Schema> collectedSchemas = collectSchemaTypes(schemaVersionKey, schemaParsingStates);
        if (collectedSchemas != null) {
            schemaTypes.putAll(collectedSchemas);
        }
    }

    return schemaTypes;
}
 
开发者ID:hortonworks,项目名称:registry,代码行数:19,代码来源:AvroSchemaResolver.java

示例5: getIncludedSchemaVersions

import com.hortonworks.registries.schemaregistry.SchemaVersionKey; //导入依赖的package包/类
private List<SchemaVersionKey> getIncludedSchemaVersions(String schemaText) throws InvalidSchemaException {
    JsonNode jsonNode = null;
    try {
        jsonNode = new ObjectMapper().readTree(schemaText);
    } catch (IOException e) {
        throw new InvalidSchemaException(e);
    }
    JsonNode includeSchemaNodes = jsonNode.get("includeSchemas");
    List<SchemaVersionKey> includedSchemaVersions = new ArrayList<>();
    if (includeSchemaNodes != null) {
        if (!includeSchemaNodes.isArray()) {
            throw new InvalidSchemaException("includeSchemas should be an array of strings");
        }

        for (JsonNode includeSchema : includeSchemaNodes) {
            String name = includeSchema.get("name").asText();
            JsonNode versionNode = includeSchema.get("version");
            int version = versionNode != null ? versionNode.asInt() : SchemaVersionKey.LATEST_VERSION;
            includedSchemaVersions.add(new SchemaVersionKey(name, version));
        }
    }
    return includedSchemaVersions;
}
 
开发者ID:hortonworks,项目名称:registry,代码行数:24,代码来源:AvroSchemaResolver.java

示例6: findSchemasByFields

import com.hortonworks.registries.schemaregistry.SchemaVersionKey; //导入依赖的package包/类
@GET
@Path("/search/schemas/fields")
@ApiOperation(value = "Search for schemas containing the given field names",
        notes = "Search the schemas for given field names and return a list of schemas that contain the field.",
        response = SchemaVersionKey.class, responseContainer = "List", tags = OPERATION_GROUP_SCHEMA)
@Timed
@UnitOfWork
public Response findSchemasByFields(@Context UriInfo uriInfo) {
    MultivaluedMap<String, String> queryParameters = uriInfo.getQueryParameters();
    try {
        Collection<SchemaVersionKey> schemaVersionKeys = schemaRegistry.findSchemasByFields(buildSchemaFieldQuery(queryParameters));

        return WSUtils.respondEntities(schemaVersionKeys, Response.Status.OK);
    } catch (Exception ex) {
        LOG.error("Encountered error while finding schemas for given fields [{}]", queryParameters, ex);
        return WSUtils.respond(Response.Status.INTERNAL_SERVER_ERROR, CatalogResponse.ResponseMessage.EXCEPTION, ex.getMessage());
    }
}
 
开发者ID:hortonworks,项目名称:registry,代码行数:19,代码来源:SchemaRegistryResource.java

示例7: serialize

import com.hortonworks.registries.schemaregistry.SchemaVersionKey; //导入依赖的package包/类
@Override
public byte[] serialize(String topic, StreamlineEvent streamlineEvent) {
    SchemaMetadata schemaMetadata = getSchemaKey(topic, false);
    SchemaVersionInfo schemaVersionInfo;
    try {
        schemaMetadata = schemaRegistryClient.getSchemaMetadataInfo(schemaMetadata.getName()).getSchemaMetadata();
        if (writerSchemaVersion != null) {
            schemaVersionInfo = schemaRegistryClient.getSchemaVersionInfo(new SchemaVersionKey(schemaMetadata.getName(), writerSchemaVersion));
        } else {
            schemaVersionInfo = schemaRegistryClient.getLatestSchemaVersionInfo(schemaMetadata.getName());
        }
    } catch (SchemaNotFoundException e) {
        LOG.error("Exception occured while getting SchemaVersionInfo for " + schemaMetadata, e);
        throw new RuntimeException(e);
    }
    if (streamlineEvent == null || streamlineEvent.isEmpty()) {
        return null;
    } else {
        return avroSnapshotSerializer.serialize(getAvroRecord(streamlineEvent, new Schema.Parser().parse(schemaVersionInfo.getSchemaText())),
                schemaMetadata);
    }
}
 
开发者ID:hortonworks,项目名称:streamline,代码行数:23,代码来源:StreamlineEventSerializer.java

示例8: deleteSchemaVersion

import com.hortonworks.registries.schemaregistry.SchemaVersionKey; //导入依赖的package包/类
@Override
public void deleteSchemaVersion(SchemaVersionKey schemaVersionKey) throws SchemaNotFoundException, SchemaLifecycleException {
    schemaVersionInfoCache.invalidateSchema(new SchemaVersionInfoCache.Key(schemaVersionKey));

    WebTarget target = currentSchemaRegistryTargets().schemasTarget.path(String.format("%s/versions/%s", schemaVersionKey
            .getSchemaName(), schemaVersionKey.getVersion()));
    Response response = Subject.doAs(subject, new PrivilegedAction<Response>() {
        @Override
        public Response run() {
            return target.request(MediaType.APPLICATION_JSON_TYPE).delete(Response.class);
        }
    });

    handleDeleteSchemaResponse(response);
}
 
开发者ID:hortonworks,项目名称:registry,代码行数:16,代码来源:SchemaRegistryClient.java

示例9: findSchemasByFields

import com.hortonworks.registries.schemaregistry.SchemaVersionKey; //导入依赖的package包/类
@Override
public Collection<SchemaVersionKey> findSchemasByFields(SchemaFieldQuery schemaFieldQuery) {
    WebTarget target = currentSchemaRegistryTargets().searchFieldsTarget;
    for (Map.Entry<String, String> entry : schemaFieldQuery.toQueryMap().entrySet()) {
        target = target.queryParam(entry.getKey(), entry.getValue());
    }

    return getEntities(target, SchemaVersionKey.class);
}
 
开发者ID:hortonworks,项目名称:registry,代码行数:10,代码来源:SchemaRegistryClient.java

示例10: doInit

import com.hortonworks.registries.schemaregistry.SchemaVersionKey; //导入依赖的package包/类
protected void doInit(Map<String, ?> config) {
    schemaCache = CacheBuilder.newBuilder()
            .maximumSize(getCacheMaxSize(config))
            .expireAfterAccess(getCacheExpiryInSecs(config), TimeUnit.SECONDS)
            .build(new CacheLoader<SchemaVersionKey, S>() {
                @Override
                public S load(SchemaVersionKey schemaVersionKey) {
                    try {
                        return getParsedSchema(schemaVersionKey);
                    } catch (SchemaNotFoundException | InvalidSchemaException e) {
                       throw new RegistryException(e);
                    }
                }
            });
}
 
开发者ID:hortonworks,项目名称:registry,代码行数:16,代码来源:AbstractSnapshotDeserializer.java

示例11: getSchema

import com.hortonworks.registries.schemaregistry.SchemaVersionKey; //导入依赖的package包/类
/**
 * Returns Schema for the given {@code schemaVersionKey} from loadable cache.
 * @param schemaVersionKey schema version key
 */
protected S getSchema(SchemaVersionKey schemaVersionKey) {
    try {
        return schemaCache.get(schemaVersionKey);
    } catch (ExecutionException e) {
        if (e.getCause() instanceof RegistryException) {
            throw (RegistryException) e.getCause();
        } else {
            throw new RegistryException(e);
        }
    }
}
 
开发者ID:hortonworks,项目名称:registry,代码行数:16,代码来源:AbstractSnapshotDeserializer.java

示例12: _testSerDes

import com.hortonworks.registries.schemaregistry.SchemaVersionKey; //导入依赖的package包/类
private void _testSerDes(Long id, Number serdesProtocolVersion) throws Exception {
    SchemaMetadata schemaMetadata =
            new SchemaMetadata.Builder("random-" + System.currentTimeMillis())
                    .schemaGroup("custom")
                    .type(AvroSchemaProvider.TYPE)
                    .compatibility(SchemaCompatibility.BACKWARD)
                    .build();

    SchemaIdVersion schemaIdVersion = new SchemaIdVersion(1L, 1, id);

    Device input = new Device(1L, "device", 1, System.currentTimeMillis());
    SchemaVersionInfo schemaVersionInfo = new SchemaVersionInfo(id, input.getName().toString(), schemaIdVersion.getVersion(),
                                                                input.getSchema().toString(),
                                                                System.currentTimeMillis(),
                                                                "some device");

    new Expectations() {
        {
            mockSchemaRegistryClient.getSchemaMetadataInfo(anyString);
            result = new SchemaMetadataInfo(schemaMetadata); minTimes=0; maxTimes=1;

            mockSchemaRegistryClient.addSchemaVersion(withInstanceOf(SchemaMetadata.class), withInstanceOf(SchemaVersion.class));
            result = schemaIdVersion; minTimes=0; maxTimes=1;

            mockSchemaRegistryClient.getSchemaVersionInfo(withInstanceOf(SchemaVersionKey.class));
            result = schemaVersionInfo; minTimes=0; maxTimes=1;
        }
    };

    AvroSnapshotSerializer serializer = new AvroSnapshotSerializer();
    serializer.init(Collections.singletonMap(SERDES_PROTOCOL_VERSION, serdesProtocolVersion));

    AvroSnapshotDeserializer deserializer = new AvroSnapshotDeserializer();
    deserializer.init(Collections.emptyMap());

    byte[] serializedData = serializer.serialize(input, schemaMetadata);
    Object deserializedObj = deserializer.deserialize(new ByteArrayInputStream(serializedData), null);

    Assert.assertTrue(SpecificData.get().compare(input, deserializedObj, input.getSchema()) == 0);
}
 
开发者ID:hortonworks,项目名称:registry,代码行数:41,代码来源:SchemaVersionProtocolHandlerTest.java

示例13: collectSchemaTypes

import com.hortonworks.registries.schemaregistry.SchemaVersionKey; //导入依赖的package包/类
private Map<String, Schema> collectSchemaTypes(SchemaVersionKey schemaVersionKey,
                                               Map<String, SchemaParsingState> schemaParsingStates)
        throws SchemaNotFoundException, InvalidSchemaException {

    String schemaName = schemaVersionKey.getSchemaName();
    SchemaParsingState schemaParsingState = schemaParsingStates.putIfAbsent(schemaName, SchemaParsingState.PARSING);

    // if it is already parsed then the respective schema types would have been already collected.
    if (SchemaParsingState.PARSED == schemaParsingState) {
        return null;
    }

    // if it is in parsing state earlier and it is visted again then ther eis circular dependency!!
    if (SchemaParsingState.PARSING == schemaParsingState) {
        throw new CyclicSchemaDependencyException("Cyclic dependency of schema imports with schema [" + schemaName + "]");
    }

    // this schema is not yet parsed till now
    if (schemaParsingState == null) {
        Schema.Parser parser = new Schema.Parser();
        Schema schema = parser.parse(getResultantSchema(schemaVersionKey, schemaParsingStates));
        Map<String, Schema> complexTypes = new HashMap<>();
        collectComplexTypes(schema, complexTypes);
        schemaParsingStates.put(schemaName, SchemaParsingState.PARSED);
        return complexTypes;
    }

    throw new IllegalStateException("Schema parsing with schema version " + schemaVersionKey + " is in invalid state!!");
}
 
开发者ID:hortonworks,项目名称:registry,代码行数:30,代码来源:AvroSchemaResolver.java

示例14: addAndDeleteSchemaVersion

import com.hortonworks.registries.schemaregistry.SchemaVersionKey; //导入依赖的package包/类
private SchemaVersionKey addAndDeleteSchemaVersion(String schemaName) throws InvalidSchemaException, IncompatibleSchemaException, SchemaNotFoundException, IOException, SchemaBranchNotFoundException, SchemaLifecycleException {
    SchemaMetadata schemaMetadata = createSchemaMetadata(schemaName, SchemaCompatibility.BOTH);
    SchemaIdVersion schemaIdVersion = SCHEMA_REGISTRY_CLIENT.addSchemaVersion(schemaMetadata, new SchemaVersion(AvroSchemaRegistryClientUtil
                                                                                                                        .getSchema("/device.avsc"), "Initial version of the schema"));
    SchemaVersionKey schemaVersionKey = new SchemaVersionKey(schemaMetadata.getName(), schemaIdVersion.getVersion());
    SCHEMA_REGISTRY_CLIENT.deleteSchemaVersion(schemaVersionKey);

    return schemaVersionKey;
}
 
开发者ID:hortonworks,项目名称:registry,代码行数:10,代码来源:AvroSchemaRegistryClientTest.java

示例15: testDeletingNonExistingSchema

import com.hortonworks.registries.schemaregistry.SchemaVersionKey; //导入依赖的package包/类
@Test(expected = SchemaNotFoundException.class)
public void testDeletingNonExistingSchema() throws Exception {

    SchemaVersionKey schemaVersionKey = addAndDeleteSchemaVersion(TEST_NAME_RULE.getMethodName());

    // deleting again should return SchemaNotFoundException
    SCHEMA_REGISTRY_CLIENT.deleteSchemaVersion(schemaVersionKey);
}
 
开发者ID:hortonworks,项目名称:registry,代码行数:9,代码来源:AvroSchemaRegistryClientTest.java


注:本文中的com.hortonworks.registries.schemaregistry.SchemaVersionKey类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。