Skip to content

Remove static methods in initializr-metadata's public API that are only used in tests #956

Open
@wilkinsona

Description

@wilkinsona

The initializr-metadata module has some public API that is only used in tests. It'd be nice to reduce the public API and pull those methods out into something that is test-specific. That might be a -test-support module similar to what we have in Spring Boot.

Some methods that are candidates for removal from the public API:

  • io.spring.initializr.metadata.BillOfMaterials.create(String, String)
  • io.spring.initializr.metadata.BillOfMaterials.create(String, String, String)
  • io.spring.initializr.metadata.BillOfMaterials.Mapping.create(String, String)
  • io.spring.initializr.metadata.BillOfMaterials.Mapping.create(String, String, String...)
  • io.spring.initializr.metadata.Dependency.create(String, String, String, String)
  • io.spring.initializr.metadata.Dependency.withId(String, String)
  • io.spring.initializr.metadata.Dependency.withId(String, String, String, String)
  • io.spring.initializr.metadata.Dependency.withId(String, String, String, String, String)
  • io.spring.initializr.metadata.Dependency.Mapping.create(String, String, String, String, Boolean)

Of the methods listed above, one of them is used by tests in start.spring.io. We could consider a published test module or copy and paste as the usage is pretty minimal.

There's also a mixture of overloading (Dependency.withId) and methods that may be called with several nulls (Dependency.Mapping.create). It'd be nice to be consistent and I wonder if a builder-based approach might work quite well here.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions