@Override public MetadataType getOutputType(MetadataContext context, String key) throws MetadataResolvingException, ConnectionException { return BaseTypeBuilder.create(JAVA).anyType().build(); }
@Override public MetadataType getOutputType(MetadataContext context, Object key) throws MetadataResolvingException, ConnectionException { return context.getTypeBuilder().anyType().build(); } }
@Override public MetadataType getStaticMetadata() { return BaseTypeBuilder.create(JSON).anyType().build(); } }
@Override public MetadataType getOutputType(MetadataContext context, Object key) throws MetadataResolvingException, ConnectionException { return context.getTypeBuilder().anyType().build(); } }
@Override public MetadataType getOutputType(MetadataContext context, Object key) throws MetadataResolvingException, ConnectionException { return context.getTypeBuilder().anyType().build(); } }
@Override public MetadataType getOutputType(MetadataContext context, Object key) throws MetadataResolvingException, ConnectionException { return BaseTypeBuilder.create(JAVA).anyType().build(); }
@Override public MetadataType getOutputType(MetadataContext context, Object key) throws MetadataResolvingException, ConnectionException { return context.getTypeBuilder().anyType().build(); } }
default MetadataType getOperationReturnMetadataType() { Type returnType; if (isNonBlocking(this)) { returnType = getParameters().stream() .filter(p -> p.getType().isAssignableTo(CompletionCallback.class)) .findAny() .get() .getType(); List<TypeGeneric> generics = returnType.getGenerics(); if (generics.isEmpty()) { return BaseTypeBuilder.create(JAVA).anyType().build(); } returnType = generics.get(0).getConcreteType(); } else { returnType = getReturnType(); } return IntrospectionUtils.getReturnType(returnType); }
@Test public void listOfResultsOperationWithoutGenerics() throws Exception { ExtensionDeclarer declarer = loaderFor(HeisenbergWithListOfResultOperations.class) .declare(new DefaultExtensionLoadingContext(getClass().getClassLoader(), getDefault(emptySet()))); OperationDeclaration operation = getOperation(declarer.getDeclaration(), "listOfResultsWithoutGenerics"); MetadataType outputType = operation.getOutput().getType(); assertThat(outputType, is(instanceOf(ArrayType.class))); assertMessageType(((ArrayType) outputType).getType(), TYPE_BUILDER.anyType().build(), TYPE_BUILDER.anyType().build()); }
@Override public void visitAnyType(AnyType anyType) { if (property == null) { return; } if (!property.isStrict()) { boolean shouldAddSinceMuleVersionModelProperty = !isInputStream(anyType); ParameterGroupDeclaration group = declaration.getParameterGroup(DEFAULT_GROUP_NAME); declareOutputMimeTypeParameter(group, shouldAddSinceMuleVersionModelProperty); declareOutputEncodingParameter(group, shouldAddSinceMuleVersionModelProperty); } replaceOutputType(declaration, property, format -> { AnyTypeBuilder anyTypeBuilder = BaseTypeBuilder.create(format).anyType(); enrichWithAnnotations(anyTypeBuilder, declaration.getOutput().getType().getAnnotations()); return anyTypeBuilder.build(); }); }
@Override public MetadataType asMetadataType() { MetadataType metadataType = typeLoader.load(type); if (this.isSameType(Object.class) || this.isSameType(Serializable.class) || this.isAssignableTo(InputStream.class) || this.isAssignableTo(Byte[].class) || this.isAssignableTo(byte[].class)) { MetadataTypeEnricher enricher = new MetadataTypeEnricher(); return enricher.enrich(BaseTypeBuilder.create(JAVA).anyType().build(), typeLoader.load(type).getAnnotations()); } return metadataType; }
@Test public void messageAttributesVoidTypeMetadata() throws Exception { location = Location.builder().globalName(MESSAGE_ATTRIBUTES_ANY_TYPE_METADATA).addProcessorsPart().addIndexPart(0).build(); final ComponentMetadataDescriptor<OperationModel> metadataDescriptor = getSuccessComponentDynamicMetadata(NULL_METADATA_KEY); final OperationModel typedModel = metadataDescriptor.getModel(); assertExpectedOutput(typedModel, ExtensionsTestUtils.TYPE_BUILDER.anyType().build(), ExtensionsTestUtils.TYPE_BUILDER.anyType().build()); assertExpectedType(getParameter(typedModel, TARGET_PARAMETER_NAME), String.class); }
@Test public void operationWhichReturnsDynamicListOfMessages() throws Exception { location = Location.builder().globalName("dynamicListOfMessages").addProcessorsPart().addIndexPart(0).build(); MetadataType param = getResolvedTypeFromList(); assertMessageType(((ArrayType) param).getType(), personType, TYPE_BUILDER.anyType().build()); }
@Test public void dynamicContentWithoutKeyId() throws Exception { location = Location.builder().globalName(CONTENT_METADATA_WITHOUT_KEY_ID).addProcessorsPart().addIndexPart(0).build(); final ComponentMetadataDescriptor<OperationModel> metadataDescriptor = getSuccessComponentDynamicMetadata(NULL_METADATA_KEY); final OperationModel typedModel = metadataDescriptor.getModel(); assertExpectedOutput(typedModel, typeBuilder.anyType().build(), void.class); assertExpectedType(getParameter(typedModel, "content"), personType, true); }
@Test public void getContentMetadataWithKey() throws Exception { location = Location.builder().globalName(CONTENT_METADATA_WITH_KEY_ID).addProcessorsPart().addIndexPart(0).build(); final ComponentMetadataDescriptor<OperationModel> metadataDescriptor = getSuccessComponentDynamicMetadataWithKey(PERSON_METADATA_KEY); final OperationModel typedModel = metadataDescriptor.getModel(); assertExpectedOutput(typedModel, typeBuilder.anyType().build(), void.class); assertExpectedType(getParameter(typedModel, "type"), String.class); assertExpectedType(getParameter(typedModel, "content"), personType, true); }
@Test public void getContentMetadataWithoutRequiredKeyId() throws Exception { location = Location.builder().globalName(CONTENT_METADATA_WITH_KEY_ID).addProcessorsPart().addIndexPart(0).build(); final ComponentMetadataDescriptor<OperationModel> metadataDescriptor = getSuccessComponentDynamicMetadata(PERSON_METADATA_KEY); final OperationModel typedModel = metadataDescriptor.getModel(); assertExpectedOutput(typedModel, typeBuilder.anyType().build(), void.class); assertExpectedType(getParameter(typedModel, "type"), String.class); assertExpectedType(getParameter(typedModel, "content"), personType, true); }
@Test public void deleteWithExpressionInputMetadata() throws Exception { MetadataType parametersTypes = getInputMetadata("deleteMetadata", "DELETE FROM PLANET WHERE name = #[mel:payload]"); assertThat(parametersTypes, is(typeBuilder.anyType().build())); } }
@Test public void messageAttributesVoidTypeMetadata() throws Exception { location = Location.builder().globalName(MESSAGE_ATTRIBUTES_ANY_TYPE_METADATA).addProcessorsPart().addIndexPart(0).build(); final ComponentMetadataDescriptor<OperationModel> metadataDescriptor = getSuccessComponentDynamicMetadata(NULL_METADATA_KEY); final OperationModel typedModel = metadataDescriptor.getModel(); assertExpectedOutput(typedModel, ExtensionsTestUtils.TYPE_BUILDER.anyType().build(), ExtensionsTestUtils.TYPE_BUILDER.anyType().build()); assertExpectedType(getParameter(typedModel, TARGET_PARAMETER_NAME), String.class); }
@Test public void operationWhichReturnsDynamicListOfMessages() throws Exception { location = Location.builder().globalName("dynamicListOfMessages").addProcessorsPart().addIndexPart(0).build(); MetadataType param = getResolvedTypeFromList(); assertMessageType(((ArrayType) param).getType(), personType, TYPE_BUILDER.anyType().build()); }
@Test public void getContentMetadataWithoutRequiredKeyId() throws Exception { location = Location.builder().globalName(CONTENT_METADATA_WITH_KEY_ID).addProcessorsPart().addIndexPart(0).build(); final ComponentMetadataDescriptor<OperationModel> metadataDescriptor = getSuccessComponentDynamicMetadata(PERSON_METADATA_KEY); final OperationModel typedModel = metadataDescriptor.getModel(); assertExpectedOutput(typedModel, typeBuilder.anyType().build(), void.class); assertExpectedType(getParameter(typedModel, "type"), String.class); assertExpectedType(getParameter(typedModel, "content"), personType, true); }