X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.app.core%2Fsrc%2Forg%2Fargeo%2Fapp%2Fcore%2FSuiteContentNamespace.java;h=ecb07c92e6639fd4d671f1d5160e74af1c8c6012;hb=616a062e9d061ce91589556624ed622298a21ac7;hp=48c508b45c54c6697ad84569d7335578a5e30fec;hpb=e4cab19b189e5921742a834dde19fa084771824f;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java b/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java index 48c508b..ecb07c9 100644 --- a/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java +++ b/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java @@ -1,6 +1,7 @@ package org.argeo.app.core; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.util.Objects; @@ -10,7 +11,8 @@ public enum SuiteContentNamespace implements ContentNamespace { // // ARGEO // - ENTITY("entity", "http://www.argeo.org/ns/entity", "entity.xsd", null), + ENTITY("entity", "http://www.argeo.org/ns/entity", + "platform:/plugin/org.argeo.app.api/org/argeo/api/app/entity.xsd", null), // ARGEO_DBK("argeodbk", "http://www.argeo.org/ns/argeodbk", null, null), // @@ -46,7 +48,10 @@ public enum SuiteContentNamespace implements ContentNamespace { ODK("odk", "http://www.opendatakit.org/xforms", null, null), // WGS84("geo", "http://www.w3.org/2003/01/geo/wgs84_pos#", null, null), + // Re-add XML in order to solve import issue with xlink + XML("xml", "http://www.w3.org/XML/1998/namespace", "xml.xsd", "http://www.w3.org/2001/xml.xsd"), // + ; private final static String RESOURCE_BASE = "/org/argeo/app/core/schemas/"; @@ -62,7 +67,19 @@ public enum SuiteContentNamespace implements ContentNamespace { Objects.requireNonNull(namespace); this.namespace = namespace; if (resourceFileName != null) { - resource = getClass().getResource(RESOURCE_BASE + resourceFileName); + try { + // FIXME workaround when in nested OSGi frameworks + // we should use class path, as before + if (!resourceFileName.startsWith("platform:")) { + resource = URI.create("platform:/plugin/org.argeo.app.core" + RESOURCE_BASE + resourceFileName) + .toURL(); + } else { + resource = URI.create(resourceFileName).toURL(); + } + } catch (MalformedURLException e) { + throw new IllegalArgumentException("Cannot convert " + resourceFileName + " to URL"); + } + Objects.requireNonNull(resource); } if (publicUrl != null)