Skip to content

Does not record option groups in metadata JAR #642

@mamachanko

Description

@mamachanko

Problem

When building application metadata with the spring-cloud-dataflow-apps-metadata-plugin:1.1.1, the dataflow-configuration-option-groups.properties file in the metadata JAR contains port mapping data instead of option groups data.

Root Cause

In src/main/java/org/springframework/cloud/dataflow/app/plugin/MetadataAggregationMojo.java there is a mismatch between ZIP entry creation and property storage in MetadataAggregationMojo.java:

// MetadataAggregationMojo.java#503-509

entry = new ZipEntry("META-INF/" + SPRING_CLOUD_DATAFLOW_PORT_MAPPING_PROPERTIES);
jos.putNextEntry(entry);

entry = new ZipEntry("META-INF/" + SPRING_CLOUD_DATAFLOW_OPTION_GROUPS_PROPERTIES);
jos.putNextEntry(entry);

result.getPortMappingProperties().store(jos, "Describes visible port mapping properties for this app");
// ↑ Bug: writes port mappings to the option groups file

Steps to Reproduce

  1. Create application with option groups metadata file at src/main/resources/META-INF/dataflow-configuration-option-groups.properties:
com.vmware.tanzu.dataflow.configuration-properties.option-groups.common=prop1,prop2,prop3
com.vmware.tanzu.dataflow.configuration-properties.option-groups.readers.filereader=reader.prop1,reader.prop2
com.vmware.tanzu.dataflow.configuration-properties.option-groups.writers.filewriter=writer.prop1,writer.prop2
  1. Build application with Maven using the metadata plugin
  2. Extract metadata JAR from target/ directory
  3. Check contents of META-INF/dataflow-configuration-option-groups.properties in the metadata JAR

Expected Result

The dataflow-configuration-option-groups.properties file should contain option groups data:

# Describes option groups for this app
# [timestamp]
com.vmware.tanzu.dataflow.configuration-properties.option-groups.common=prop1,prop2,prop3
com.vmware.tanzu.dataflow.configuration-properties.option-groups.readers.filereader=reader.prop1,reader.prop2
com.vmware.tanzu.dataflow.configuration-properties.option-groups.writers.filewriter=writer.prop1,writer.prop2

Actual Result

The dataflow-configuration-option-groups.properties file contains port mapping data instead:

# Describes visible port mapping properties for this app
# [timestamp]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions