Skip to content

Commit 324adaa

Browse files
committed
Ontology import fixes
1 parent 94de000 commit 324adaa

12 files changed

Lines changed: 57 additions & 55 deletions

File tree

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ admin_uri() {
8282
}
8383

8484
admin_base=$(admin_uri "$base")
85-
target_url="${admin_base}install-package"
85+
target_url="${admin_base}packages/install"
8686

8787
if [ -n "$proxy" ]; then
8888
admin_proxy=$(admin_uri "$proxy")
@@ -94,8 +94,10 @@ else
9494
final_url="$target_url"
9595
fi
9696

97-
# POST to install-package endpoint
97+
# POST to packages/install endpoint
9898
curl -k -w "%{http_code}\n" -E "${cert_pem_file}":"${cert_password}" \
99+
-X POST \
99100
-H "Accept: text/turtle" \
100-
-d "package-uri=${package_uri}" \
101+
-H "Content-Type: application/x-www-form-urlencoded" \
102+
--data-urlencode "package-uri=${package_uri}" \
101103
"${final_url}"

config/system.trig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
lapp:origin <https://admin.localhost:4443> ;
2222
ldt:ontology <https://w3id.org/atomgraph/linkeddatahub/admin#> ;
2323
ldt:service <urn:linkeddatahub:services/admin> ;
24-
ac:stylesheet <static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/admin/layout.xsl> ;
24+
ac:stylesheet <static/xsl/layout.xsl> ;
2525
lapp:endUserApplication <urn:linkeddatahub:apps/end-user> ;
2626
lapp:frontendProxy <http://varnish-frontend:6060/> .
2727

http-tests/admin/packages/install-package.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@ curl -k -f -s -o /dev/null \
2424
"$END_USER_BASE_URL"static/com/linkeddatahub/packages/skos/layout.xsl
2525

2626
# verify master stylesheet was regenerated and includes package import
27-
curl -k -s "${END_USER_BASE_URL}static/localhost/layout.xsl" \
27+
curl -k -s "${END_USER_BASE_URL}static/xsl/layout.xsl" \
2828
| grep -q "com/linkeddatahub/packages/skos/layout.xsl"

http-tests/admin/packages/install-uninstall-package.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ curl -k -f -s -o /dev/null \
2424
"${END_USER_BASE_URL}static/com/linkeddatahub/packages/skos/layout.xsl"
2525

2626
# verify master stylesheet includes package
27-
curl -k -s "$END_USER_BASE_URL"static/localhost/layout.xsl \
27+
curl -k -s "$END_USER_BASE_URL"static/xsl/layout.xsl \
2828
| grep -q "com/linkeddatahub/packages/skos/layout.xsl"
2929

3030
# uninstall package
@@ -42,5 +42,5 @@ curl -k -w "%{http_code}\n" -o /dev/null -s \
4242
| grep -q "$STATUS_NOT_FOUND"
4343

4444
# verify master stylesheet no longer includes package
45-
curl -k -s "$END_USER_BASE_URL"static/localhost/layout.xsl \
45+
curl -k -s "$END_USER_BASE_URL"static/xsl/layout.xsl \
4646
| grep -v -q "com/linkeddatahub/packages/skos/layout.xsl"

http-tests/admin/packages/uninstall-package.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,5 @@ curl -k -w "%{http_code}\n" -o /dev/null -s \
3838
| grep -q "$STATUS_NOT_FOUND"
3939

4040
# verify master stylesheet was regenerated without package import
41-
curl -k -s "$END_USER_BASE_URL"static/localhost/layout.xsl \
41+
curl -k -s "$END_USER_BASE_URL"static/xsl/layout.xsl \
4242
| grep -v -q "com/linkeddatahub/packages/skos/layout.xsl"

http-tests/config/system.trig

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
lapp:origin <https://admin.localhost:4443> ;
2222
ldt:ontology <https://w3id.org/atomgraph/linkeddatahub/admin#> ;
2323
ldt:service <urn:linkeddatahub:services/admin> ;
24-
ac:stylesheet <static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/admin/layout.xsl> ;
2524
lapp:endUserApplication <urn:linkeddatahub:apps/end-user> ;
2625
lapp:frontendProxy <http://varnish-frontend:6060/> .
2726

@@ -60,7 +59,6 @@
6059
lapp:origin <https://admin.test.localhost:4443> ;
6160
ldt:ontology <https://w3id.org/atomgraph/linkeddatahub/admin#> ;
6261
ldt:service <urn:linkeddatahub:services/test/admin> ;
63-
ac:stylesheet <static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/admin/layout.xsl> ;
6462
lapp:endUserApplication <urn:linkeddatahub:apps/test/end-user> ;
6563
lapp:frontendProxy <http://varnish-frontend:6060/> .
6664

src/main/java/com/atomgraph/linkeddatahub/resource/admin/pkg/Install.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,9 +288,8 @@ private void regenerateMasterStylesheet(EndUserApplication app, String newPackag
288288
packagePaths.add(newPackagePath);
289289

290290
// Regenerate master stylesheet
291-
String hostname = app.getBaseURI().getHost();
292291
XsltMasterUpdater updater = new XsltMasterUpdater(getServletContext());
293-
updater.regenerateMasterStylesheet(hostname, packagePaths);
292+
updater.regenerateMasterStylesheet(packagePaths);
294293
}
295294

296295
/**

src/main/java/com/atomgraph/linkeddatahub/resource/admin/pkg/Uninstall.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,8 @@ private void regenerateMasterStylesheet(EndUserApplication app, String removedPa
184184
}
185185

186186
// Regenerate master stylesheet
187-
String hostname = app.getBaseURI().getHost();
188187
XsltMasterUpdater updater = new XsltMasterUpdater(getServletContext());
189-
updater.regenerateMasterStylesheet(hostname, packagePaths);
188+
updater.regenerateMasterStylesheet(packagePaths);
190189
}
191190

192191
/**

src/main/java/com/atomgraph/linkeddatahub/server/util/XsltMasterUpdater.java

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.w3c.dom.NodeList;
2525

2626
import jakarta.servlet.ServletContext;
27+
import jakarta.ws.rs.InternalServerErrorException;
2728
import javax.xml.parsers.DocumentBuilder;
2829
import javax.xml.parsers.DocumentBuilderFactory;
2930
import javax.xml.transform.OutputKeys;
@@ -37,6 +38,10 @@
3738
import java.nio.file.Paths;
3839
import java.util.ArrayList;
3940
import java.util.List;
41+
import javax.xml.parsers.ParserConfigurationException;
42+
import javax.xml.transform.TransformerException;
43+
import org.w3c.dom.DOMException;
44+
import org.xml.sax.SAXException;
4045

4146
/**
4247
* Updates master XSLT stylesheets with package import chains.
@@ -49,7 +54,6 @@ public class XsltMasterUpdater
4954
private static final Logger log = LoggerFactory.getLogger(XsltMasterUpdater.class);
5055

5156
private static final String XSL_NS = "http://www.w3.org/1999/XSL/Transform";
52-
private static final String XS_NS = "http://www.w3.org/2001/XMLSchema";
5357

5458
private final ServletContext servletContext;
5559

@@ -64,28 +68,25 @@ public XsltMasterUpdater(ServletContext servletContext)
6468
}
6569

6670
/**
67-
* Regenerates the master stylesheet for an application hostname.
68-
* The master stylesheet must exist at /static/<hostname>/layout.xsl.
71+
* Regenerates the master stylesheet for the application.
72+
* The master stylesheet must exist at /static/xsl/layout.xsl.
6973
* This method loads it and adds/updates xsl:import elements for packages.
7074
*
71-
* @param hostname the application hostname (e.g., "localhost")
7275
* @param packagePaths list of package paths to import (e.g., ["com/linkeddatahub/packages/skos"])
7376
* @throws IOException if file operations fail
7477
*/
75-
public void regenerateMasterStylesheet(String hostname, List<String> packagePaths) throws IOException
78+
public void regenerateMasterStylesheet(List<String> packagePaths) throws IOException
7679
{
77-
if (hostname == null) throw new IllegalArgumentException("Hostname cannot be null");
78-
7980
try
8081
{
8182
Path staticDir = getStaticPath();
82-
Path hostnameDir = staticDir.resolve(hostname);
83-
Path masterFile = hostnameDir.resolve("layout.xsl");
83+
Path xslDir = staticDir.resolve("xsl");
84+
Path masterFile = xslDir.resolve("layout.xsl");
8485

8586
// Master stylesheet must exist
8687
if (!Files.exists(masterFile))
8788
{
88-
throw new jakarta.ws.rs.InternalServerErrorException("Master stylesheet does not exist: " + masterFile);
89+
throw new InternalServerErrorException("Master stylesheet does not exist: " + masterFile);
8990
}
9091

9192
// Load existing master stylesheet
@@ -136,7 +137,7 @@ public void regenerateMasterStylesheet(String hostname, List<String> packagePath
136137
}
137138

138139
// Write to file
139-
Files.createDirectories(hostnameDir);
140+
Files.createDirectories(xslDir);
140141
TransformerFactory transformerFactory = TransformerFactory.newInstance();
141142
Transformer transformer = transformerFactory.newTransformer();
142143
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
@@ -147,9 +148,9 @@ public void regenerateMasterStylesheet(String hostname, List<String> packagePath
147148
StreamResult result = new StreamResult(masterFile.toFile());
148149
transformer.transform(source, result);
149150

150-
if (log.isDebugEnabled()) log.debug("Regenerated master stylesheet for hostname '{}' at: {}", hostname, masterFile);
151+
if (log.isDebugEnabled()) log.debug("Regenerated master stylesheet at: {}", masterFile);
151152
}
152-
catch (Exception e)
153+
catch (InternalServerErrorException | IOException | IllegalArgumentException | IllegalStateException | ParserConfigurationException | TransformerException | DOMException | SAXException e)
153154
{
154155
throw new IOException("Failed to regenerate master stylesheet", e);
155156
}
@@ -174,7 +175,7 @@ private Element findSystemImport(Element stylesheet)
174175
}
175176

176177
/**
177-
* Removes all xsl:import elements for packages.
178+
* Removes all <samp>xsl:import</samp> elements for packages.
178179
* Identifies package imports by checking if they have a preceding comment containing "Package:".
179180
*/
180181
private void removePackageImports(Element stylesheet)

src/main/resources/com/linkeddatahub/packages/skos/ns.ttl

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
1-
@prefix : <#> .
2-
@prefix ns: <ns#> .
1+
@prefix : <#> .
32
@prefix ldh: <https://w3id.org/atomgraph/linkeddatahub#> .
43
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
4+
@prefix owl: <http://www.w3.org/2002/07/owl#> .
55
@prefix sp: <http://spinrdf.org/sp#> .
66
@prefix spin: <http://spinrdf.org/spin#> .
77
@prefix dct: <http://purl.org/dc/terms/> .
88
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
99

10+
: a owl:Ontology ;
11+
rdfs:label "SKOS package ontology".
12+
1013
# Concept
1114

1215
# narrower
1316

14-
skos:Concept ldh:template ns:NarrowerConcepts.
17+
skos:Concept ldh:template :NarrowerConcepts.
1518

16-
ns:NarrowerConcepts a ldh:View ;
19+
:NarrowerConcepts a ldh:View ;
1720
dct:title "Narrower concepts" ;
18-
spin:query ns:SelectNarrowerConcepts ;
19-
rdfs:isDefinedBy ns: .
21+
spin:query :SelectNarrowerConcepts ;
22+
rdfs:isDefinedBy : .
2023

21-
ns:SelectNarrowerConcepts a sp:Select ;
24+
:SelectNarrowerConcepts a sp:Select ;
2225
rdfs:label "Select narrower concepts" ;
2326
sp:text """
2427
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
@@ -36,18 +39,18 @@ WHERE
3639
}
3740
ORDER BY ?prefLabel
3841
""" ;
39-
rdfs:isDefinedBy ns: .
42+
rdfs:isDefinedBy : .
4043

4144
# broader
4245

43-
skos:Concept ldh:template ns:BroaderConcepts.
46+
skos:Concept ldh:template :BroaderConcepts.
4447

45-
ns:BroaderConcepts a ldh:View ;
48+
:BroaderConcepts a ldh:View ;
4649
dct:title "Broader concepts" ;
47-
spin:query ns:SelectBroaderConcepts ;
48-
rdfs:isDefinedBy ns: .
50+
spin:query :SelectBroaderConcepts ;
51+
rdfs:isDefinedBy : .
4952

50-
ns:SelectBroaderConcepts a sp:Select ;
53+
:SelectBroaderConcepts a sp:Select ;
5154
rdfs:label "Select broader concepts" ;
5255
sp:text """
5356
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
@@ -65,18 +68,18 @@ WHERE
6568
}
6669
ORDER BY ?prefLabel
6770
""" ;
68-
rdfs:isDefinedBy ns: .
71+
rdfs:isDefinedBy : .
6972

7073
# Collection
7174

72-
skos:Collection ldh:template ns:CollectionMembers.
75+
skos:Collection ldh:template :CollectionMembers.
7376

74-
ns:CollectionMembers a ldh:View ;
77+
:CollectionMembers a ldh:View ;
7578
dct:title "Collection members" ;
76-
spin:query ns:SelectCollectionMembers ;
77-
rdfs:isDefinedBy ns: .
79+
spin:query :SelectCollectionMembers ;
80+
rdfs:isDefinedBy : .
7881

79-
ns:SelectCollectionMembers a sp:Select ;
82+
:SelectCollectionMembers a sp:Select ;
8083
rdfs:label "Select collection members" ;
8184
sp:text """
8285
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
@@ -94,18 +97,18 @@ WHERE
9497
}
9598
ORDER BY ?prefLabel
9699
""" ;
97-
rdfs:isDefinedBy ns: .
100+
rdfs:isDefinedBy : .
98101

99102
# ConceptScheme
100103

101-
skos:ConceptScheme ldh:template ns:ConceptsInScheme.
104+
skos:ConceptScheme ldh:template :ConceptsInScheme.
102105

103-
ns:ConceptsInScheme a ldh:View ;
106+
:ConceptsInScheme a ldh:View ;
104107
dct:title "Concepts in scheme" ;
105-
spin:query ns:SelectConceptsInScheme ;
106-
rdfs:isDefinedBy ns: .
108+
spin:query :SelectConceptsInScheme ;
109+
rdfs:isDefinedBy : .
107110

108-
ns:SelectConceptsInScheme a sp:Select ;
111+
:SelectConceptsInScheme a sp:Select ;
109112
rdfs:label "Select concepts in scheme" ;
110113
sp:text """
111114
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
@@ -120,4 +123,4 @@ WHERE
120123
}
121124
ORDER BY ?prefLabel
122125
""" ;
123-
rdfs:isDefinedBy ns: .
126+
rdfs:isDefinedBy : .

0 commit comments

Comments
 (0)