Проблема Mule SDK - Невозможно получить ключи для метаданных, используя @MetadataKeyId
Я использую Mule SDK для разработки собственного коннектора. Я работаю над получением необходимых метаданных. Ниже приведены два фрагмента, которые я использую:WeatherConnectrOperations.java:
public class WeatherConnectrOperations {
public void select(@MetadataKeyId(RecordKeysResolver.class) String type) {
}
}
RecordKeysResolver.java:
public class RecordKeysResolver implements TypeKeysResolver {
@Override
public String getCategoryName() {
return "Records";
}
@Override
public Set<MetadataKey> getKeys(MetadataContext context) throws MetadataResolvingException, ConnectionException {
System.out.println("Hello");
List<String> keyIds = Arrays.asList("Author_id", "BookList_id", "Book_id");
HashSet<MetadataKey> keys = new HashSet<>();
for (String id : keyIds) {
MetadataKeyBuilder builder = MetadataKeyBuilder.newKey(id);
builder.withDisplayName(StringUtils.removeEnd(id, "_id"));
keys.add(builder.build());
}
return keys;
}
}
Моя проблема в том, что поле типа не заполняется необходимыми ключами
Я делаю в соответствии с этим документом - https://docs.mulesoft.com/mule-sdk/1.1/metadata-keys
0 ответов
Это не упоминается в документации, но кажется, что ключи метаданных не будут разрешены, если не будет соответствующего Input/OutputTypeResolver.
Убедитесь, что соответствующий Input / OutputTypeResolver имеет то же CategoryName, что и KeyResolver, и я также обнаружил, что имя переменной должно быть таким же в Operation method и Input/OutputTypeResolver.
Думаю, логика в том, что вам не нужен ключ метаданных, если у вас нет преобразователя метаданных. Если вам просто нужен раскрывающийся список значений, вы можете использовать поставщиков значений (https://docs.mulesoft.com/mule-sdk/1.1/value-providers)