Skip to content

Commit 906ff00

Browse files
authored
Validate artifactId with PacakgeURL format (#47)
* Validate artifactId with PacakgeURL format * updating the project version to 0.1.2
1 parent 68cbf00 commit 906ff00

File tree

5 files changed

+31
-17
lines changed

5 files changed

+31
-17
lines changed

pom.xml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<modelVersion>4.0.0</modelVersion>
66
<groupId>dev.cdevents</groupId>
77
<artifactId>cdevents-sdk-java</artifactId>
8-
<version>0.1.0-SNAPSHOT</version>
8+
<version>0.1.2-SNAPSHOT</version>
99

1010
<name>cdevents-sdk-java</name>
1111
<description>cdevents java sdk</description>
@@ -26,6 +26,8 @@
2626
<assertj-core.version>3.22.0</assertj-core.version>
2727
<jackson.version>2.15.0</jackson.version>
2828
<slf4j.version>2.0.7</slf4j.version>
29+
<json.schema.version>1.0.80</json.schema.version>
30+
<packageurl.version>1.4.1</packageurl.version>
2931
<project.github.repository>cdevents/sdk-java</project.github.repository>
3032
<nexus.url>https://s01.oss.sonatype.org</nexus.url>
3133
<repository.url>[email protected]:${project.github.repository}.git</repository.url>
@@ -111,7 +113,8 @@
111113
<dependency>
112114
<groupId>com.networknt</groupId>
113115
<artifactId>json-schema-validator</artifactId>
114-
<version>1.0.80</version>
116+
<version>${json.schema.version}</version>
117+
115118
</dependency>
116119

117120
<dependency>
@@ -128,6 +131,12 @@
128131
<scope>runtime</scope>
129132
</dependency>
130133

134+
<dependency>
135+
<groupId>com.github.package-url</groupId>
136+
<artifactId>packageurl-java</artifactId>
137+
<version>${packageurl.version}</version>
138+
</dependency>
139+
131140
<!-- Test dependencies -->
132141
<dependency>
133142
<groupId>org.junit.jupiter</groupId>

src/main/java/dev/cdevents/events/ArtifactPackagedCDEvent.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package dev.cdevents.events;
22

33
import com.fasterxml.jackson.annotation.JsonProperty;
4+
import com.github.packageurl.PackageURL;
45
import dev.cdevents.constants.CDEventConstants;
56
import dev.cdevents.models.ArtifactPackagedSubject;
67
import dev.cdevents.models.CDEvent;
@@ -169,10 +170,10 @@ public String eventSchema() {
169170

170171
/**
171172
* @param subjectId
172-
* sets the subject Id
173+
* sets the subject Id in the PURL format
173174
*/
174-
public void setSubjectId(String subjectId) {
175-
getSubject().setId(subjectId);
175+
public void setSubjectId(PackageURL subjectId) {
176+
getSubject().setId(subjectId.toString());
176177
}
177178

178179
/**

src/main/java/dev/cdevents/events/ArtifactPublishedCDEvent.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package dev.cdevents.events;
22

33
import com.fasterxml.jackson.annotation.JsonProperty;
4+
import com.github.packageurl.PackageURL;
45
import dev.cdevents.constants.CDEventConstants;
56
import dev.cdevents.models.ArtifactPublishedSubject;
67
import dev.cdevents.models.CDEvent;
@@ -149,10 +150,10 @@ public String eventSchema() {
149150

150151
/**
151152
* @param subjectId
152-
* sets the subject Id
153+
* sets the subject Id in PURL format
153154
*/
154-
public void setSubjectId(String subjectId) {
155-
getSubject().setId(subjectId);
155+
public void setSubjectId(PackageURL subjectId) {
156+
getSubject().setId(subjectId.toString());
156157
}
157158

158159
/**

src/main/java/dev/cdevents/events/BuildFinishedCDEvent.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package dev.cdevents.events;
22

33
import com.fasterxml.jackson.annotation.JsonProperty;
4+
import com.github.packageurl.PackageURL;
45
import dev.cdevents.constants.CDEventConstants;
56
import dev.cdevents.models.BuildFinishedSubject;
67
import dev.cdevents.models.CDEvent;
@@ -169,10 +170,10 @@ public void setSubjectSource(URI subjectSource) {
169170

170171
/**
171172
* @param artifactId
172-
* sets the subjects artifactId
173+
* sets the subjects artifactId in PURL format
173174
*/
174-
public void setSubjectArtifactId(String artifactId) {
175-
getSubject().getContent().setArtifactId(artifactId);
175+
public void setSubjectArtifactId(PackageURL artifactId) {
176+
getSubject().getContent().setArtifactId(artifactId.toString());
176177

177178
}
178179

src/test/java/dev/cdevents/CDEventsTest.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package dev.cdevents;
22

33
import com.fasterxml.jackson.core.JsonProcessingException;
4+
import com.github.packageurl.MalformedPackageURLException;
5+
import com.github.packageurl.PackageURL;
46
import dev.cdevents.constants.CDEventConstants;
57
import dev.cdevents.events.*;
68
import dev.cdevents.exception.CDEventsException;
@@ -648,14 +650,14 @@ void testInvalidBuildStartedEventWithNoSubject() {
648650
}
649651

650652
@Test
651-
void createBuildFinishedAsCloudEvent() {
653+
void createBuildFinishedAsCloudEvent() throws MalformedPackageURLException {
652654

653655
BuildFinishedCDEvent cdEvent = new BuildFinishedCDEvent();
654656
cdEvent.setSource(URI.create("http://dev.cdevents"));
655657

656658
cdEvent.setSubjectId("test-build");
657659
cdEvent.setSubjectSource(URI.create("/dev/builds/test-build"));
658-
cdEvent.setSubjectArtifactId("pkg:oci/myapp@sha256%3A0b31b1c02ff458ad9b7b81cbdf8f");
660+
cdEvent.setSubjectArtifactId(new PackageURL("pkg:oci/myapp@sha256%3A0b31b1c02ff458ad9b7b81cbdf8f"));
659661

660662
String cdEventJson = CDEvents.cdEventAsJson(cdEvent);
661663

@@ -846,12 +848,12 @@ void testInvalidTestSuiteFinishedEventWithNoSubject() {
846848
}
847849

848850
@Test
849-
void createArtifactPackagedEventAsCloudEvent() {
851+
void createArtifactPackagedEventAsCloudEvent() throws MalformedPackageURLException {
850852

851853
ArtifactPackagedCDEvent cdEvent = new ArtifactPackagedCDEvent();
852854
cdEvent.setSource(URI.create("http://dev.cdevents"));
853855

854-
cdEvent.setSubjectId("pkg:oci/myapp@sha256%3A0b31b1c02ff458ad9b7b");
856+
cdEvent.setSubjectId(new PackageURL("pkg:oci/myapp@sha256%3A0b31b1c02ff458ad9b7b"));
855857
cdEvent.setSubjectSource(URI.create("/dev/artifact/source"));
856858

857859
cdEvent.setSubjectChangeId("test-feature");
@@ -882,11 +884,11 @@ void testInvalidArtifactPackagedEventWithNoSubject() {
882884
}
883885

884886
@Test
885-
void createArtifactPublishedEventAsCloudEvent() {
887+
void createArtifactPublishedEventAsCloudEvent() throws MalformedPackageURLException {
886888
ArtifactPublishedCDEvent cdEvent = new ArtifactPublishedCDEvent();
887889
cdEvent.setSource(URI.create("http://dev.cdevents"));
888890

889-
cdEvent.setSubjectId("pkg:oci/myapp@sha256%3A0b31b1c02ff458ad9b7b");
891+
cdEvent.setSubjectId(new PackageURL("pkg:oci/myapp@sha256%3A0b31b1c02ff458ad9b7b"));
890892
cdEvent.setSubjectSource(URI.create("/dev/artifact/source"));
891893

892894
String cdEventJson = CDEvents.cdEventAsJson(cdEvent);

0 commit comments

Comments
 (0)