Skip to content

Commit ac200a8

Browse files
committed
chore: refactor based on suggestions
1 parent 1809252 commit ac200a8

37 files changed

+430
-1106
lines changed

pom.xml

+11-2
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,9 @@
142142
<json.version>20250107</json.version>
143143
<junit-bom.version>5.12.1</junit-bom.version>
144144
<maven-surefire-junit5-tree-reporter.version>1.4.0</maven-surefire-junit5-tree-reporter.version>
145+
<biz.aQute.bnd.annotation.version>7.1.0</biz.aQute.bnd.annotation.version>
146+
<jspecify.version>1.0.0</jspecify.version>
147+
<org.osgi.annotation.bundle.version>2.0.0</org.osgi.annotation.bundle.version>
145148
</properties>
146149

147150
<dependencyManagement>
@@ -158,6 +161,12 @@
158161
</dependencyManagement>
159162

160163
<dependencies>
164+
<dependency>
165+
<groupId>biz.aQute.bnd</groupId>
166+
<artifactId>biz.aQute.bnd.annotation</artifactId>
167+
<version>${biz.aQute.bnd.annotation.version}</version>
168+
<scope>provided</scope>
169+
</dependency>
161170
<dependency>
162171
<groupId>jakarta.validation</groupId>
163172
<artifactId>jakarta.validation-api</artifactId>
@@ -168,13 +177,13 @@
168177
<dependency>
169178
<groupId>org.osgi</groupId>
170179
<artifactId>org.osgi.annotation.bundle</artifactId>
171-
<version>2.0.0</version>
180+
<version>${org.osgi.annotation.bundle.version}</version>
172181
<scope>provided</scope>
173182
</dependency>
174183
<dependency>
175184
<groupId>org.jspecify</groupId>
176185
<artifactId>jspecify</artifactId>
177-
<version>1.0.0</version>
186+
<version>${jspecify.version}</version>
178187
<scope>provided</scope>
179188
<optional>true</optional>
180189
</dependency>

src/main/java/com/github/packageurl/PackageURL.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import static java.util.Objects.requireNonNull;
2525

2626
import com.github.packageurl.internal.StringUtil;
27-
import com.github.packageurl.type.PackageTypeFactory;
27+
import com.github.packageurl.internal.PackageTypeFactory;
2828
import java.io.Serializable;
2929
import java.net.URI;
3030
import java.net.URISyntaxException;

src/main/java/com/github/packageurl/type/PackageTypeFactory.java renamed to src/main/java/com/github/packageurl/internal/PackageTypeFactory.java

+8-3
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@
1919
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2020
* SOFTWARE.
2121
*/
22-
package com.github.packageurl.type;
22+
package com.github.packageurl.internal;
2323

24+
import aQute.bnd.annotation.spi.ServiceConsumer;
2425
import com.github.packageurl.MalformedPackageURLException;
2526
import com.github.packageurl.PackageURL;
26-
import com.github.packageurl.internal.StringUtil;
27+
2728
import java.security.AccessController;
2829
import java.security.PrivilegedAction;
2930
import java.util.ArrayList;
@@ -34,9 +35,13 @@
3435
import java.util.ServiceLoader;
3536
import java.util.Set;
3637
import java.util.TreeMap;
38+
39+
import com.github.packageurl.spi.PackageTypeProvider;
3740
import org.jspecify.annotations.NonNull;
3841
import org.jspecify.annotations.Nullable;
42+
import org.osgi.annotation.bundle.Requirement;
3943

44+
@ServiceConsumer(value = PackageTypeProvider.class, resolution = Requirement.Resolution.MANDATORY, cardinality = Requirement.Cardinality.MULTIPLE)
4045
public final class PackageTypeFactory implements PackageTypeProvider {
4146
private static final @NonNull PackageTypeFactory INSTANCE = new PackageTypeFactory();
4247

@@ -109,7 +114,7 @@ private static void validateQualifiers(@Nullable Map<String, String> qualifiers)
109114
}
110115
}
111116

112-
static void validateType(@NonNull String type) throws MalformedPackageURLException {
117+
public static void validateType(@NonNull String type) throws MalformedPackageURLException {
113118
if (type.isEmpty()) {
114119
throw new MalformedPackageURLException("a type is always required");
115120
}

0 commit comments

Comments
 (0)