-
Notifications
You must be signed in to change notification settings - Fork 41
Open
Labels
JavaSpecific to the Java language or Java profile of GeoAPISpecific to the Java language or Java profile of GeoAPI
Milestone
Description
All Java interfaces in org.opengis.metadata
packages currently use wildcard when a method returns a collection. For example:
interface Citation {
// Wildcards are the "? extends" part.
Collection<? extends Identifier> getIdentifiers();
}
The use of wildcards in return values is a deprecated practice. It has been reported as a problem by a GeoAPI user on StackOverflow. Historically, the reason for wildcards was because it was said to be necessary for JAXB and Hibernate implementations 15 years ago. But at least in JAXB case, wildcards are actually not necessary because the problem raised in that discussion can be resolved with adapters (which is what Apache SIS does).
Proposal
GeoAPI aims for semantic versioning, which forbid compatibility break between GeoAPI 3.0 and 3.1. So the proposal is:
- Remove most or all wildcards in
org.opengis.metadata
packages on the GeoAPI 4.0 branch. - On the GeoAPI 3.1 branch, keep wildcards on methods that were already present in GeoAPI 3.0.
Metadata
Metadata
Assignees
Labels
JavaSpecific to the Java language or Java profile of GeoAPISpecific to the Java language or Java profile of GeoAPI