Skip to content

Commit 59e4a10

Browse files
authored
Merge pull request #15 from GGoetzelmann/wip-upgrade-apache-commons
Upgrade apache jena dependencies
2 parents c81aba2 + 14447fd commit 59e4a10

File tree

11 files changed

+121
-112
lines changed

11 files changed

+121
-112
lines changed

build.gradle

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
plugins {
1+
plugins {
22
id "org.springframework.boot" version "2.7.5"
3-
id "io.spring.dependency-management" version "1.1.0"
3+
id "io.spring.dependency-management" version "1.1.0"
44
id "io.freefair.maven-publish-java" version "6.5.1"
5-
id "com.github.kt3k.coveralls" version "2.12.0"
5+
id "com.github.kt3k.coveralls" version "2.12.0"
66
id "org.owasp.dependencycheck" version "7.3.0"
77
id 'org.asciidoctor.jvm.convert' version '3.3.2'
88
id "net.researchgate.release" version "3.0.2"
@@ -20,14 +20,14 @@ jar {
2020
}
2121

2222
repositories {
23-
mavenLocal()
23+
mavenLocal()
2424
mavenCentral()
2525
}
2626

2727

28-
//configurations {
29-
// all*.exclude module : 'spring-boot-starter-logging'
30-
//}
28+
configurations {
29+
all*.exclude module : 'spring-boot-starter-logging'
30+
}
3131

3232
ext {
3333
set('javersVersion', "6.8.0")
@@ -50,25 +50,25 @@ targetCompatibility = '17'
5050

5151
if (System.getProperty('profile') == 'minimal') {
5252
println 'Using minimal profile for building ' + project.getName()
53-
apply from: 'gradle/profile-minimal.gradle'
53+
apply from: 'gradle/profile-minimal.gradle'
5454
} else {
5555
println 'Using default profile executing all tests for building ' + project.getName()
5656
apply from: 'gradle/profile-complete.gradle'
5757
}
5858

5959
dependencies {
6060
// boot starter
61-
implementation "org.springframework.boot:spring-boot-starter-validation"
61+
implementation "org.springframework.boot:spring-boot-starter-validation"
6262
implementation "org.springframework.boot:spring-boot-starter-data-jpa"
6363
implementation "org.springframework.boot:spring-boot-starter-data-rest"
6464
implementation "org.springframework.boot:spring-boot-starter-mail"
65-
implementation "org.springframework.boot:spring-boot-starter-actuator"
65+
//implementation "org.springframework.boot:spring-boot-starter-actuator"
6666

6767
//implementation "org.springframework.security:spring-security-web:5.7.5"
6868
//implementation "org.springframework.security:spring-security-config:5.7.5"
6969
implementation "org.thymeleaf:thymeleaf-spring5"
7070

71-
71+
7272
// cloud support
7373
//implementation "org.springframework.cloud:spring-cloud-starter-config:3.1.5"
7474
//implementation "org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:3.1.4"
@@ -86,23 +86,20 @@ dependencies {
8686
implementation "io.jsonwebtoken:jjwt-api:0.11.5"
8787
implementation "io.jsonwebtoken:jjwt-impl:0.11.5"
8888
implementation "io.jsonwebtoken:jjwt-jackson:0.11.5"
89-
89+
9090
//Jena
91-
implementation "org.apache.jena:apache-jena-libs:3.8.0"
92-
implementation "org.apache.jena:jena-fuseki:3.8.0"
93-
implementation "org.apache.jena:jena-fuseki-embedded:3.8.0"
94-
implementation 'org.apache.jena:jena-osgi:3.8.0'
95-
96-
implementation "org.apache.commons:commons-rdf-api:0.5.0"
97-
implementation "org.apache.thrift:libthrift:0.12.0"
98-
implementation("org.apache.commons:commons-rdf-jena:0.5.0"){
99-
exclude group: 'org.apache.jena', module: 'jena-osgi'
100-
}
91+
implementation "org.apache.jena:apache-jena-libs:4.10.0"
92+
implementation "org.apache.jena:jena-fuseki:4.10.0"
93+
implementation "org.apache.jena:jena-fuseki-server:4.10.0"
94+
95+
implementation "org.apache.jena:jena-commonsrdf:4.10.0"
96+
implementation "org.apache.thrift:libthrift:0.18.1"
97+
10198
implementation "org.apache.commons:commons-rdf-jsonld-java:0.5.0"
10299
implementation "com.github.java-json-tools:json-schema-validator:2.2.8"
103100

104101
implementation "org.apache.commons:commons-collections4:4.1"
105-
102+
106103
// driver for postgres
107104
implementation "org.postgresql:postgresql:42.5.0"
108105
//driver for h2
@@ -112,17 +109,19 @@ dependencies {
112109
testImplementation "org.springframework.boot:spring-boot-starter-test"
113110
testImplementation "org.springframework:spring-test"
114111
// testImplementation "org.springframework.security:spring-security-test"
115-
112+
116113
testImplementation "org.junit.platform:junit-platform-launcher:${junitPlatformVersion}"
117114
testImplementation "org.junit.platform:junit-platform-engine:${junitPlatformVersion}"
118115
testImplementation "org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}"
119116
testImplementation "org.junit.jupiter:junit-jupiter-engine:${junitJupiterVersion}"
120117
testImplementation "io.rest-assured:rest-assured"
121118
testImplementation "io.rest-assured:spring-mock-mvc"
122119
testImplementation "io.rest-assured:rest-assured"
123-
testImplementation "io.specto:hoverfly-java-junit5:0.17.1"
120+
testImplementation ("io.specto:hoverfly-java-junit5:0.17.1") {
121+
exclude group: 'ch.qos.logback', module: 'logback-classic'
122+
}
124123

125-
//Java 11 Support
124+
//Java 11 Support
126125
testImplementation "org.mockito:mockito-inline:4.10.0"
127126
//testImplementation "org.mockito:mockito-core:2.23.4"
128127
testImplementation "com.sun.xml.bind:jaxb-core:2.3.0.1"
@@ -161,7 +160,7 @@ tasks.withType(Test) {
161160
}
162161
}
163162

164-
springBoot {
163+
springBoot {
165164
buildInfo()
166165
}
167166

src/main/java/edu/kit/scc/dem/wapsrv/app/FusekiRunner.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import java.util.Vector;
66
import javax.servlet.DispatcherType;
77
import javax.servlet.FilterRegistration.Dynamic;
8-
import org.apache.jena.fuseki.embedded.FusekiServer;
8+
import org.apache.jena.fuseki.main.FusekiServer;
99
import org.eclipse.jetty.servlets.CrossOriginFilter;
1010
import org.slf4j.Logger;
1111
import org.slf4j.LoggerFactory;
@@ -75,8 +75,8 @@ public void init() {
7575
System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@ Application ready for Fuseki start @@@@@@@@@@@@@@@@@@@@@@");
7676
// true == read-write
7777
if (writePort > 0) {
78-
server1 = FusekiServer.create().setPort(writePort).add(ENDPOINT_PREFIX, dataBase.getDataBase(), true)
79-
.setLoopback(writeLoopback).build();
78+
server1 = FusekiServer.create().port(writePort).add(ENDPOINT_PREFIX, dataBase.getDataBase(), true)
79+
.loopback(writeLoopback).build();
8080
addCorsFilter(server1, true);
8181
server1.start();
8282
System.out.println("@ Fuseki running on Port: " + writePort + " at endpoint: " + ENDPOINT_PREFIX
@@ -86,8 +86,8 @@ public void init() {
8686
}
8787
// false == read-only
8888
if (readPort > 0) {
89-
server2 = FusekiServer.create().setPort(readPort).add(ENDPOINT_PREFIX, dataBase.getDataBase(), false)
90-
.setLoopback(readLoopback).build();
89+
server2 = FusekiServer.create().port(readPort).add(ENDPOINT_PREFIX, dataBase.getDataBase(), false)
90+
.loopback(readLoopback).build();
9191
addCorsFilter(server2, false);
9292
server2.start();
9393
System.out.println(

src/main/java/edu/kit/scc/dem/wapsrv/repository/jena/JenaRdfBackend.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44
import java.io.StringWriter;
55
import org.apache.commons.rdf.api.Dataset;
66
import org.apache.commons.rdf.api.RDF;
7-
import org.apache.commons.rdf.jena.JenaRDF;
7+
import org.apache.jena.commonsrdf.JenaCommonsRDF;
8+
import org.apache.jena.commonsrdf.JenaRDF;
89
import org.apache.jena.graph.Graph;
10+
import org.apache.jena.query.DatasetFactory;
911
import org.apache.jena.riot.Lang;
1012
import org.apache.jena.riot.RDFDataMgr;
1113
import org.apache.jena.riot.RDFFormat;
1214
import org.apache.jena.riot.RiotException;
13-
import org.apache.jena.system.JenaSystem;
15+
import org.apache.jena.sys.JenaSystem;
1416
import org.slf4j.Logger;
1517
import org.slf4j.LoggerFactory;
1618
import org.springframework.stereotype.Component;
@@ -66,7 +68,7 @@ public String getOutput(Dataset dataset, Format format) throws WapException {
6668
if (lang == null) {
6769
throw new FormatException("Format " + format + " not supported in jena RDF backend");
6870
}
69-
Graph graph = rdf.asJenaGraph(dataset.getGraph());
71+
Graph graph = JenaCommonsRDF.toJena(dataset.getGraph());
7072
StringWriter writer = new StringWriter();
7173
//Specifying format option to match behaviour of jsonld-java. Likely to break on dependency change / jena upgrade. See https://jena.apache.org/documentation/io/rdf-output.html#json-ld
7274
if(format == Format.JSON_LD) {
@@ -80,20 +82,22 @@ public String getOutput(Dataset dataset, Format format) throws WapException {
8082

8183
@Override
8284
public Dataset readFromString(String serialization, final Format format) throws WapException {
83-
final Lang lang = JenaFormatMapper.map(format);
85+
Lang lang = JenaFormatMapper.map(format);
86+
//TODO: this solution is already deprecated. See https://github.com/apache/jena/issues/1765
87+
if(format == Format.JSON_LD) {lang = Lang.JSONLD10;}
8488
if (lang == null) {
8589
throw new FormatException("Format " + format + " not supported in jena RDF backend");
8690
}
8791
ByteArrayInputStream in = new ByteArrayInputStream(serialization.getBytes());
8892
// org.apache.jena.query.Dataset datasetGraph=null;
89-
org.apache.jena.sparql.core.DatasetGraph datasetGraph = rdf.createDataset().asJenaDatasetGraph();
93+
org.apache.jena.sparql.core.DatasetGraph datasetGraph = DatasetFactory.create().asDatasetGraph();
9094
try {
9195
RDFDataMgr.read(datasetGraph, in, lang);
9296
} catch (RiotException rex) {
9397
throw new FormatException(rex.getMessage(), rex);
9498
}
9599
// closing byte array input streams is not needed
96-
return rdf.asDataset(datasetGraph);
100+
return JenaCommonsRDF.fromJena(datasetGraph);
97101
}
98102

99103
@Override

src/main/java/edu/kit/scc/dem/wapsrv/repository/jena/JenaRepository.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
import java.util.List;
77
import javax.annotation.PostConstruct;
88
import org.apache.commons.rdf.api.RDF;
9-
import org.apache.commons.rdf.jena.JenaDataset;
10-
import org.apache.commons.rdf.jena.JenaRDF;
9+
import org.apache.jena.commonsrdf.JenaCommonsRDF;
10+
import org.apache.jena.commonsrdf.impl.JenaDataset;
11+
import org.apache.jena.commonsrdf.JenaRDF;
1112
import org.apache.jena.graph.Graph;
1213
import org.apache.jena.query.Dataset;
1314
import org.apache.jena.rdf.model.Model;
@@ -93,7 +94,7 @@ public org.apache.commons.rdf.api.Dataset getWapObject(String iri) {
9394
}
9495
Model readModel = dataBase.getNamedModel(iri);
9596
readModel.listStatements().forEachRemaining(s -> {
96-
jenaDs.asJenaDatasetGraph().getDefaultGraph().add(s.asTriple());
97+
jenaDs.getDataset().getDefaultGraph().add(s.asTriple());
9798
});
9899
return retDs;
99100
}
@@ -210,7 +211,7 @@ public int countElementsInSeq(String modelIri, String seqIri) {
210211
public void writeObjectToDatabase(WapObject wapObject) {
211212
org.apache.commons.rdf.api.Dataset dataset = wapObject.getDataset();
212213
JenaDataset jenaDs = (JenaDataset) dataset;
213-
Graph jenaGraph = jenaDs.asJenaDatasetGraph().getDefaultGraph();
214+
Graph jenaGraph = jenaDs.getDataset().getDefaultGraph();
214215
Model jenaModel = org.apache.jena.rdf.model.ModelFactory.createModelForGraph(jenaGraph);
215216
String iriString = wapObject.getIriString();
216217
dataBase.addNamedModel(iriString, jenaModel);
@@ -239,8 +240,8 @@ public List<String> getAllObjectIrisOfSeq(String modelIri, String seqIri) {
239240
@Override
240241
public org.apache.commons.rdf.api.Dataset getTransactionDataset() {
241242
JenaRDF jenaRDF = (JenaRDF) rdfBackend.getRdf();
242-
JenaDataset transactionDataset = jenaRDF.asDataset(dataBase);
243-
return transactionDataset;
243+
244+
return JenaCommonsRDF.fromJena(dataBase.asDatasetGraph());
244245
}
245246

246247
@Override

src/main/java/edu/kit/scc/dem/wapsrv/repository/jena/JenaRepository2.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
import java.util.List;
88
import javax.annotation.PostConstruct;
99
import org.apache.commons.rdf.api.RDF;
10-
import org.apache.commons.rdf.jena.JenaDataset;
11-
import org.apache.commons.rdf.jena.JenaRDF;
10+
import org.apache.jena.commonsrdf.JenaCommonsRDF;
11+
import org.apache.jena.commonsrdf.JenaRDF;
12+
import org.apache.jena.commonsrdf.impl.JenaDataset;
1213
import org.apache.jena.graph.Graph;
1314
import org.apache.jena.query.Dataset;
1415
import org.apache.jena.query.ReadWrite;
@@ -105,7 +106,7 @@ public org.apache.commons.rdf.api.Dataset getWapObject(String iri){
105106
}
106107
Model readModel = dataBase.getNamedModel(iri);
107108
readModel.listStatements().forEachRemaining(s -> {
108-
jenaDs.asJenaDatasetGraph().getDefaultGraph().add(s.asTriple());
109+
jenaDs.getDataset().getDefaultGraph().add(s.asTriple());
109110
});
110111
return retDs;
111112
}
@@ -212,7 +213,7 @@ public int countElementsInSeq(String modelIri, String seqIri){
212213
public void writeObjectToDatabase(WapObject wapObject){
213214
org.apache.commons.rdf.api.Dataset dataset = wapObject.getDataset();
214215
JenaDataset jenaDs = (JenaDataset) dataset;
215-
Graph jenaGraph = jenaDs.asJenaDatasetGraph().getDefaultGraph();
216+
Graph jenaGraph = jenaDs.getDataset().getDefaultGraph();
216217
Model jenaModel = org.apache.jena.rdf.model.ModelFactory.createModelForGraph(jenaGraph);
217218
String iriString = wapObject.getIriString();
218219
dataBase.addNamedModel(iriString, jenaModel);
@@ -244,8 +245,7 @@ public List<String> getAllObjectIrisOfSeq(String modelIri, String seqIri){
244245
@Override
245246
public org.apache.commons.rdf.api.Dataset getTransactionDataset(){
246247
JenaRDF jenaRDF = (JenaRDF) rdfBackend.getRdf();
247-
JenaDataset transactionDataset = jenaRDF.asDataset(dataBase);
248-
return transactionDataset;
248+
return JenaCommonsRDF.fromJena(dataBase.asDatasetGraph());
249249
}
250250

251251
@Override

0 commit comments

Comments
 (0)