diff --git a/.github/workflows/check-update.yml b/.github/workflows/check-update.yml index b960aaf3..f06922b3 100644 --- a/.github/workflows/check-update.yml +++ b/.github/workflows/check-update.yml @@ -23,7 +23,7 @@ jobs: - name: Download resources, build Jars, publish locally, run tests run: | - ./gradlew downloads jars publishJarsToMavenLocal :test:test + ./gradlew downloads jars haleResourceBundles publishJarsToMavenLocal :test:test env: ORG_GRADLE_PROJECT_wetfArtifactoryUser: ${{ secrets.WETF_ARTIFACTORY_USER }} ORG_GRADLE_PROJECT_wetfArtifactoryPassword: ${{ secrets.WETF_ARTIFACTORY_PASSWORD }} diff --git a/.github/workflows/publish-resources.yml b/.github/workflows/publish-resources.yml index 3039e870..71aae5e4 100644 --- a/.github/workflows/publish-resources.yml +++ b/.github/workflows/publish-resources.yml @@ -33,7 +33,7 @@ jobs: - name: Build jars and test run: | - ./gradlew jars publishJarsToMavenLocal :test:test + ./gradlew jars haleResourceBundles publishJarsToMavenLocal :test:test env: ORG_GRADLE_PROJECT_wetfArtifactoryUser: ${{ secrets.WETF_ARTIFACTORY_USER }} ORG_GRADLE_PROJECT_wetfArtifactoryPassword: ${{ secrets.WETF_ARTIFACTORY_PASSWORD }} diff --git a/.github/workflows/update-resources.yml b/.github/workflows/update-resources.yml index 0f5a8b58..678638a8 100644 --- a/.github/workflows/update-resources.yml +++ b/.github/workflows/update-resources.yml @@ -30,7 +30,7 @@ jobs: - name: Download resources and run tests run: | - ./gradlew downloads jars publishJarsToMavenLocal :test:test + ./gradlew downloads jars haleResourceBundles publishJarsToMavenLocal :test:test env: ORG_GRADLE_PROJECT_wetfArtifactoryUser: ${{ secrets.WETF_ARTIFACTORY_USER }} ORG_GRADLE_PROJECT_wetfArtifactoryPassword: ${{ secrets.WETF_ARTIFACTORY_PASSWORD }} diff --git a/build.gradle b/build.gradle index 24a317b9..c5087814 100644 --- a/build.gradle +++ b/build.gradle @@ -264,7 +264,62 @@ class INSPIREDownloadTask extends DefaultTask { // the remote URL to retrieve the resource ZIP archive from @Input def archiveUrl - + + // create application schema index file + def inspireSchemaIndex(def project, File target, List folders) { + // get application schemas from INSPIRE registry + def registry + new URL('https://inspire.ec.europa.eu/applicationschema/applicationschema.en.json').withReader { reader -> + registry = new groovy.json.JsonSlurper().parse(reader) + } + def appSchemas = [] + registry.register.containeditems*.applicationschema.each { + def theme = it.theme + if (!theme) { + theme = it.themes?.getAt(0)?.theme + } + + appSchemas << [id: it.id, name: it.label.text, theme: theme?.label?.text, themeId: theme?.id] + } + + def inspireShortIdRegex = '^http://inspire.ec.europa.eu/applicationschema/([^/]*)$' + + target.withWriter { + it << '\n' + def xml = new groovy.xml.MarkupBuilder(it) + xml.applicationSchemas { + appSchemas.each { appSchema -> + xml.applicationSchema(id: appSchema.id, name: appSchema.name, theme: appSchema.theme, + themeId: appSchema.themeId) { + // find corresponding schema files + + // extract short identifier + def matcher = ( appSchema.id =~ inspireShortIdRegex ) + def shortId = matcher[0][1] + + // replace abandoned(?) Geology schema with Geology core + if (shortId == 'ge') shortId = 'ge-core' + + folders.each { File folder -> + File asDir = new File(folder, shortId) + if (asDir.exists()) { + // find version subfolders + asDir.eachDir { File versionDir -> + versionDir.eachFileMatch(~/.*\.xsd/) { File xsd -> + xml.schema( + version: versionDir.name, + url: "https://inspire.ec.europa.eu/${folder.name}/${asDir.name}/${versionDir.name}/${xsd.name}" + ) + } + } + } + } + } + } + } + } + } + @TaskAction def downloadAndExtract() { assert host @@ -288,13 +343,13 @@ class INSPIREDownloadTask extends DefaultTask { def md = new MetadataHelper(project, targetDir) md.cleanFolderKeepMetadata() - + project.copy { // Exclude Zip files, 'governance' folder, and 'readme.md' file exclude('**/*.zip', 'application-schemas-main/governance-release-process/**', 'application-schemas-main/README.md', 'application-schemas-main/.github/**') - - from project.zipTree(tmpSchemas) - into temporaryDir + + from project.zipTree(tmpSchemas) + into temporaryDir } /* @@ -343,10 +398,15 @@ class INSPIREDownloadTask extends DefaultTask { file.renameTo(destination) } + // create application schema index file (used by hale-studio specific bundle) + inspireSchemaIndex(project, new File(targetDir, 'applicationSchemas.xml'), + [new File(targetDir, 'schemas')] + ) + // update version on change md.setVersionIfChanged() } - } +} class WgetHostIndexDownloadTask extends DefaultTask { // the list of URLs pointing to a web server index @@ -613,6 +673,33 @@ task inspireSchemas(type: INSPIREDownloadTask) { } tasks.downloads.dependsOn(inspireSchemas) +/** + * AAA and XPlanung schemas + */ +def aaaVersions = ['6.0', '7.1'] +def wfsExtVersions = [ '1.0', '2.0' ] +def shapeChangeVersions = [ '1.0' ] +// Map version number used in URLs to version number displayed to user +def xplanungVersions = [ + '4.0.2' :'4.0.2', + '4.1-Kernmodell' : '4.1', + '5.0' : '5.0.1', + '5.1' : '5.1.2', + '5.2' : '5.2.1', + '5.3' : '5.3', + '5.4' : '5.4', + '6.0' : '6.0' +] + +task gdiRepositorySchemas(type: WgetHostIndexDownloadTask) { + group 'Download' + indexUrls = aaaVersions.collect { version -> "http://repository.gdi-de.org/schemas/adv/nas/${version}/" } + + wfsExtVersions.collect { version -> "http://repository.gdi-de.org/schemas/adv/wfsext/${version}/" } + + shapeChangeVersions.collect { version -> "http://repository.gdi-de.org/schemas/adv/sc/${version}/" } + + xplanungVersions.collect { urlVersion, displayVersion -> "https://repository.gdi-de.org/schemas/de.xleitstelle.xplanung/${urlVersion}/" } + fileExtensions = ['xml','xsd', 'txt'] +} +tasks.downloads.dependsOn(gdiRepositorySchemas) /** * Schemas for metadata validation: @@ -661,6 +748,110 @@ tasks.downloads.dependsOn(metadataCSW2) */ +/* + * Download the FeatureConcept information from the INSPIRE registry, which is + * used in HALE when generating an INSPIRE Dataset Feed. + */ +task downloadInspireFeatureConcepts { + doLast { + File targetDir = project.file("${project.ext.resourcesFolder}/inspire-feature-concepts") + + // clean up before download to remove any obsolete files + def md = new MetadataHelper(project, targetDir) + md.cleanFolderKeepMetadata() + + def paths = ['featureconcept/featureconcept.en.json'] + for (String path : paths) { + File localFile = new File(targetDir, path) + def fileUrl = "https://inspire.ec.europa.eu/" + path + + // download file + project.download.run { + src fileUrl + dest localFile + overwrite true + } + } + + // update version on change + md.setVersionIfChanged() + } +} +tasks.downloads.dependsOn('downloadInspireFeatureConcepts') + + +/* + * Download code list files based on registry (requires wget, XML content type) + */ +task downloadInspireCodeLists { + doLast { + + // determine resources to retrieve from registry + def registry + new URL('https://inspire.ec.europa.eu/codelist/codelist.en.json').withReader { reader -> + registry = new groovy.json.JsonSlurper().parse(reader) + } + + def languages = ['en', 'bg', 'cs', 'hr', 'da', 'de', 'el', 'es', 'et', 'fi', 'fr', + 'hu', 'it', 'lt', 'lv', 'mt', 'nl', 'pl', 'pt', 'ro', 'sk', 'sl', 'sv'] + + def genericUrls = [] + def fixedUrls = [] + registry.register.containeditems*.codelist.id.each { id -> + // the ID is the URI to retrieve the code list by default + genericUrls << id + // extract code list name + def regex = '/([^/]*)$' + def matcher = ( id =~ regex ) + def name = matcher[0][1] + // add fixed urls TODO in all languages? + fixedUrls << "${id}/${name}.en.xml" + fixedUrls << "${id}/${name}.en.json" + } + + // problem is, we can't download both generic and fixed, + // because the fixed URLs require a directory with the name + // of the generic URL -> so we create two archives/bundles + + File genericDir = project.file("${project.ext.resourcesFolder}/inspire-code-lists-generic") + + // clean up before download to remove any obsolete files + def genericMd = new MetadataHelper(project, genericDir) + genericMd.cleanFolderKeepMetadata() + + genericUrls.each { url -> + exec { + workingDir = genericDir + executable = 'wget' + args '--force-directories', '--no-host-directories', "--header=Accept: application/xml", "--header=Accept-Language: en", url + } + } + + // update version on change + genericMd.setVersionIfChanged() + + File fixedDir = project.file("${project.ext.resourcesFolder}/inspire-code-lists-fixed") + + // clean up before download to remove any obsolete files + def fixedMd = new MetadataHelper(project, fixedDir) + fixedMd.cleanFolderKeepMetadata() + + fixedUrls.each { url -> + exec { + workingDir = fixedDir + executable = 'wget' + args '--force-directories', '--no-host-directories', url + } + } + + // update version on change + fixedMd.setVersionIfChanged() + + } +} +tasks.downloads.dependsOn('downloadInspireCodeLists') + + /* * Processing tasks */ @@ -713,6 +904,7 @@ task(jars) { */ files = project.ext.resourcesFolder.listFiles() + /* XXX currently not used - TODO control where a Jar should be created? files.each { File file -> if (file.isDirectory() && !file.name.equals('hosts')) { println "Creating resources JARs for ${file.name}" @@ -736,6 +928,7 @@ task(jars) { md.generateJar(tmpJarFolder, jarFolder, file.name) } } + */ } @@ -776,9 +969,241 @@ task('updateSite', type: GradleBuild) { tasks = ['clean', 'updateSite'] } +/* + * Hale studio specific tasks + */ + +class ResourceBundleTask extends DefaultTask { + // the host that the resource bundle mirrors resources from + @Input + def host + // the local folder with source files + @Input + def sourceDir + // optional additional sources + @Input + @Optional + def additionalSources + // the prefix for the symbolic name + @Input + def symbolicNamePrefix = 'eu.esdihumboldt.util.resource' + // the bundle identifier (is appended to prefix sepearate by a dot) + @Input + def bundleId + // the served resource type + @Input + def resourceType = 'xmlSchema' + // the destination dir + @Input + def destDir = project.buildDir + // extra content for the plugin.xml - must be a closure taking a markup builder as argument + @Internal + java.util.function.Consumer pluginExtra + + ResourceBundleTask() { + getOutputs().upToDateWhen { + // we don't support proper up-to-date checking here + false + } + } + + @TaskAction + def createBundle() { + assert host + assert sourceDir + assert bundleId + assert symbolicNamePrefix + assert resourceType // the primary resource type + assert destDir + + def md = new MetadataHelper(project, sourceDir) + + def version = md.version + def symbolicName = "$symbolicNamePrefix.$bundleId" + + File tmpDir = temporaryDir //File.createTempFile('resources', 'bundle') + tmpDir.delete() + tmpDir.mkdir() + + // create plugin.xml + File tmpPluginXml = new File(tmpDir, 'plugin.xml') + tmpPluginXml.withWriter { + it << '\n' + it << '\n' + def xml = new groovy.xml.MarkupBuilder(it) + xml.plugin { + extension(point: 'eu.esdihumboldt.util.resource') { + resolver(id: bundleId, resourceType: resourceType) { + xml.host(name: host) + bundleResolver() + } + } + if (pluginExtra != null) { + pluginExtra.accept(xml) + } + } + } + + def variants = [version, md.snapshot, 'CURRENT-SNAPSHOT'] + variants.each { variant -> + File bundle = new File(destDir, "${symbolicName}_${variant}.jar") + + // build jar + ant.jar(destfile: bundle) { + fileset (dir: sourceDir, excludes: '**/.metadata/**') + if (additionalSources) { + fileset (dir: additionalSources, excludes: '**/.metadata/**') + } + fileset (dir: tmpPluginXml.parentFile, includes: tmpPluginXml.name) + manifest { + attribute(name: 'Bundle-Version', value: version) + attribute(name: 'Bundle-Name', value: "Resources from $host") + attribute(name: 'Bundle-ManifestVersion', value: 2) + attribute(name: 'Bundle-SymbolicName', value: "$symbolicName;singleton:=true") + } + } + } + } +} + /** * Task for creating resource bundles used by hale */ task haleResourceBundles() { - //TODO separate task or adapt hale functionality to work with JARs built in jars task? -} \ No newline at end of file +} + +task porteleSchemasBundle(type: ResourceBundleTask) { + bundleId = 'schemas.portele.de' + host = 'portele.de' + sourceDir = new File(hostsFolder, 'portele.de') + destDir = jarFolder +} +haleResourceBundles.dependsOn('porteleSchemasBundle') + +task inspireFeatureConceptsBundle(type: ResourceBundleTask) { + bundleId = 'featureconcepts.inspire' + host = 'inspire.ec.europa.eu' + sourceDir = new File(resourcesFolder, 'inspire-feature-concepts') + destDir = jarFolder +} +haleResourceBundles.dependsOn('inspireFeatureConceptsBundle') + +task w3SchemasBundle(type: ResourceBundleTask) { + bundleId = 'w3.org' + host = 'www.w3.org' + sourceDir = new File(hostsFolder, 'www.w3.org') + destDir = jarFolder +} +haleResourceBundles.dependsOn('w3SchemasBundle') + +task inspireCodeListsBundleGeneric(type: ResourceBundleTask) { + bundleId = 'codelists.inspire.accept-xml' + host = 'inspire.ec.europa.eu' + sourceDir = new File(resourcesFolder, 'inspire-code-lists-generic') + destDir = jarFolder + resourceType = 'xmlCodeList' +} +haleResourceBundles.dependsOn('inspireCodeListsBundleGeneric') + +task inspireCodeListsBundleFixed(type: ResourceBundleTask) { + bundleId = 'codelists.inspire' + host = 'inspire.ec.europa.eu' + sourceDir = new File(resourcesFolder, 'inspire-code-lists-fixed') + destDir = jarFolder + resourceType = 'xmlCodeList' +} +haleResourceBundles.dependsOn('inspireCodeListsBundleFixed') + +task opengisBundle(type: ResourceBundleTask) { + bundleId = 'schemas.opengis.net' + host = 'schemas.opengis.net' + sourceDir = new File(hostsFolder, 'schemas.opengis.net') + destDir = jarFolder +} +haleResourceBundles.dependsOn('opengisBundle') + +task inspireSchemasBundle(type: ResourceBundleTask) { + bundleId = 'schemas.inspire' + host = 'inspire.ec.europa.eu' + sourceDir = new File(hostsFolder, 'inspire.ec.europa.eu') + additionalSources = new File(resourcesFolder, 'inspire-fixup') + destDir = jarFolder + pluginExtra = { xml -> + // read application schemas file + def applicationSchemasFile = new File(sourceDir, 'applicationSchemas.xml') + def appSchemas = new groovy.xml.XmlSlurper().parse(applicationSchemasFile) + + def themeShortIdRegex = '^http://inspire.ec.europa.eu/theme/([^/]*)$' + + xml.extension(point: 'eu.esdihumboldt.hale.ui.schema.presets') { + println appSchemas + appSchemas.applicationSchema.each { appSchema -> + def id = appSchema.@id + + appSchema.schema.each { schema -> + def theme = appSchema.@theme as String + def descr = theme ? "GML Application Schema from the INSPIRE Data Specification on ${theme}." : "Application Schema from the INSPIRE Data Specifications (not associated to a theme)." + + def themeId = appSchema.@themeId as String + def iconPath = 'icons/inspire.gif' + if (themeId) { + // extract short identifier + def matcher = ( themeId =~ themeShortIdRegex ) + def shortId = matcher[0][1] + + iconPath = "icons/themes/16_${shortId}.png" + } + + xml.schema( + description: descr, + icon: iconPath, + id: id, + name: "INSPIRE ${appSchema.'@name'}", +// tag: 'Bundled', + version: schema.@version + ) { + xml.uri(value: schema.@url) + } + } + } + } + } +} +haleResourceBundles.dependsOn('inspireSchemasBundle') + +task gdiRepositorySchemasBundle(type: ResourceBundleTask) { + bundleId = 'schemas.repository.gdi-de.org' + host = 'repository.gdi-de.org' + sourceDir = new File(hostsFolder, 'repository.gdi-de.org') + additionalSources = new File(resourcesFolder, 'xplanung-fixup') + destDir = jarFolder + pluginExtra = { xml -> + xml.extension(point: 'eu.esdihumboldt.hale.ui.schema.presets') { + aaaVersions.each { version -> + xml.schema( + category: 'de', + description: "AAA (ATKIS, ALKIS, AFIS) Modell der Arbeitsgemeinschaft der Vermessungsverwaltungen der Länder der Bundesrepublik Deutschland (AdV)", + id: "de.adv-online.aaa.${version.replace('.', '_')}", + name: "AAA XML Schema", + version: "${version}" + ) { + xml.uri(value: "http://repository.gdi-de.org/schemas/adv/nas/${version}/aaa.xsd") + } + } + + xplanungVersions.each { urlVersion, displayVersion -> + xml.schema( + category: 'de', + description: "XPlanung GML Application Schema", + icon: 'icons/xplanung.png', + id: "de.xplanung.xplangml.${urlVersion.replace('.', '_')}", + name: "XPlanGML", + version: "${displayVersion}" + ) { + xml.uri(value: "https://repository.gdi-de.org/schemas/de.xleitstelle.xplanung/${urlVersion}/XPlanung-Operationen.xsd") + } + } + } + } +} +haleResourceBundles.dependsOn('gdiRepositorySchemasBundle') diff --git a/resources/inspire-fixup/icons/inspire.gif b/resources/inspire-fixup/icons/inspire.gif new file mode 100644 index 00000000..2bc73451 Binary files /dev/null and b/resources/inspire-fixup/icons/inspire.gif differ diff --git a/resources/inspire-fixup/icons/themes/16_ac.png b/resources/inspire-fixup/icons/themes/16_ac.png new file mode 100644 index 00000000..bdee9bff Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_ac.png differ diff --git a/resources/inspire-fixup/icons/themes/16_ad.png b/resources/inspire-fixup/icons/themes/16_ad.png new file mode 100644 index 00000000..7ab6e750 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_ad.png differ diff --git a/resources/inspire-fixup/icons/themes/16_af.png b/resources/inspire-fixup/icons/themes/16_af.png new file mode 100644 index 00000000..5cde7f5d Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_af.png differ diff --git a/resources/inspire-fixup/icons/themes/16_am.png b/resources/inspire-fixup/icons/themes/16_am.png new file mode 100644 index 00000000..7a8874ef Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_am.png differ diff --git a/resources/inspire-fixup/icons/themes/16_au.png b/resources/inspire-fixup/icons/themes/16_au.png new file mode 100644 index 00000000..99d09c98 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_au.png differ diff --git a/resources/inspire-fixup/icons/themes/16_br.png b/resources/inspire-fixup/icons/themes/16_br.png new file mode 100644 index 00000000..342666f3 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_br.png differ diff --git a/resources/inspire-fixup/icons/themes/16_bu.png b/resources/inspire-fixup/icons/themes/16_bu.png new file mode 100644 index 00000000..7a304dd7 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_bu.png differ diff --git a/resources/inspire-fixup/icons/themes/16_cp.png b/resources/inspire-fixup/icons/themes/16_cp.png new file mode 100644 index 00000000..1b83a9e6 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_cp.png differ diff --git a/resources/inspire-fixup/icons/themes/16_ef.png b/resources/inspire-fixup/icons/themes/16_ef.png new file mode 100644 index 00000000..28b74846 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_ef.png differ diff --git a/resources/inspire-fixup/icons/themes/16_el.png b/resources/inspire-fixup/icons/themes/16_el.png new file mode 100644 index 00000000..6494e625 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_el.png differ diff --git a/resources/inspire-fixup/icons/themes/16_er.png b/resources/inspire-fixup/icons/themes/16_er.png new file mode 100644 index 00000000..922f2888 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_er.png differ diff --git a/resources/inspire-fixup/icons/themes/16_ge.png b/resources/inspire-fixup/icons/themes/16_ge.png new file mode 100644 index 00000000..8cdd9611 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_ge.png differ diff --git a/resources/inspire-fixup/icons/themes/16_gg.png b/resources/inspire-fixup/icons/themes/16_gg.png new file mode 100644 index 00000000..9f827314 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_gg.png differ diff --git a/resources/inspire-fixup/icons/themes/16_gn.png b/resources/inspire-fixup/icons/themes/16_gn.png new file mode 100644 index 00000000..22d9714e Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_gn.png differ diff --git a/resources/inspire-fixup/icons/themes/16_hb.png b/resources/inspire-fixup/icons/themes/16_hb.png new file mode 100644 index 00000000..9dd0373d Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_hb.png differ diff --git a/resources/inspire-fixup/icons/themes/16_hh.png b/resources/inspire-fixup/icons/themes/16_hh.png new file mode 100644 index 00000000..60d95c8b Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_hh.png differ diff --git a/resources/inspire-fixup/icons/themes/16_hy.png b/resources/inspire-fixup/icons/themes/16_hy.png new file mode 100644 index 00000000..be8c5e93 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_hy.png differ diff --git a/resources/inspire-fixup/icons/themes/16_lc.png b/resources/inspire-fixup/icons/themes/16_lc.png new file mode 100644 index 00000000..8b1bf7ba Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_lc.png differ diff --git a/resources/inspire-fixup/icons/themes/16_lu.png b/resources/inspire-fixup/icons/themes/16_lu.png new file mode 100644 index 00000000..464f50c7 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_lu.png differ diff --git a/resources/inspire-fixup/icons/themes/16_mf.png b/resources/inspire-fixup/icons/themes/16_mf.png new file mode 100644 index 00000000..3f4010c9 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_mf.png differ diff --git a/resources/inspire-fixup/icons/themes/16_mr.png b/resources/inspire-fixup/icons/themes/16_mr.png new file mode 100644 index 00000000..c79efa81 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_mr.png differ diff --git a/resources/inspire-fixup/icons/themes/16_nz.png b/resources/inspire-fixup/icons/themes/16_nz.png new file mode 100644 index 00000000..6d1aec5b Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_nz.png differ diff --git a/resources/inspire-fixup/icons/themes/16_of.png b/resources/inspire-fixup/icons/themes/16_of.png new file mode 100644 index 00000000..c282bea2 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_of.png differ diff --git a/resources/inspire-fixup/icons/themes/16_oi.png b/resources/inspire-fixup/icons/themes/16_oi.png new file mode 100644 index 00000000..1ff55b5a Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_oi.png differ diff --git a/resources/inspire-fixup/icons/themes/16_pd.png b/resources/inspire-fixup/icons/themes/16_pd.png new file mode 100644 index 00000000..3465f22f Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_pd.png differ diff --git a/resources/inspire-fixup/icons/themes/16_pf.png b/resources/inspire-fixup/icons/themes/16_pf.png new file mode 100644 index 00000000..15d6c003 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_pf.png differ diff --git a/resources/inspire-fixup/icons/themes/16_ps.png b/resources/inspire-fixup/icons/themes/16_ps.png new file mode 100644 index 00000000..fe39fe0b Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_ps.png differ diff --git a/resources/inspire-fixup/icons/themes/16_rs.png b/resources/inspire-fixup/icons/themes/16_rs.png new file mode 100644 index 00000000..9bbb9e39 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_rs.png differ diff --git a/resources/inspire-fixup/icons/themes/16_sd.png b/resources/inspire-fixup/icons/themes/16_sd.png new file mode 100644 index 00000000..86eaad4f Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_sd.png differ diff --git a/resources/inspire-fixup/icons/themes/16_so.png b/resources/inspire-fixup/icons/themes/16_so.png new file mode 100644 index 00000000..6454084c Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_so.png differ diff --git a/resources/inspire-fixup/icons/themes/16_sr.png b/resources/inspire-fixup/icons/themes/16_sr.png new file mode 100644 index 00000000..704ad4bf Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_sr.png differ diff --git a/resources/inspire-fixup/icons/themes/16_su.png b/resources/inspire-fixup/icons/themes/16_su.png new file mode 100644 index 00000000..89b0507d Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_su.png differ diff --git a/resources/inspire-fixup/icons/themes/16_tn.png b/resources/inspire-fixup/icons/themes/16_tn.png new file mode 100644 index 00000000..c3bcedc1 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_tn.png differ diff --git a/resources/inspire-fixup/icons/themes/16_us.png b/resources/inspire-fixup/icons/themes/16_us.png new file mode 100644 index 00000000..14b47e01 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/16_us.png differ diff --git a/resources/inspire-fixup/icons/themes/ac.png b/resources/inspire-fixup/icons/themes/ac.png new file mode 100644 index 00000000..d5941023 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/ac.png differ diff --git a/resources/inspire-fixup/icons/themes/ad.png b/resources/inspire-fixup/icons/themes/ad.png new file mode 100644 index 00000000..492dacb8 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/ad.png differ diff --git a/resources/inspire-fixup/icons/themes/af.png b/resources/inspire-fixup/icons/themes/af.png new file mode 100644 index 00000000..6e35c7cb Binary files /dev/null and b/resources/inspire-fixup/icons/themes/af.png differ diff --git a/resources/inspire-fixup/icons/themes/am.png b/resources/inspire-fixup/icons/themes/am.png new file mode 100644 index 00000000..8afddba5 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/am.png differ diff --git a/resources/inspire-fixup/icons/themes/au.png b/resources/inspire-fixup/icons/themes/au.png new file mode 100644 index 00000000..09204db4 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/au.png differ diff --git a/resources/inspire-fixup/icons/themes/br.png b/resources/inspire-fixup/icons/themes/br.png new file mode 100644 index 00000000..754399a5 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/br.png differ diff --git a/resources/inspire-fixup/icons/themes/bu.png b/resources/inspire-fixup/icons/themes/bu.png new file mode 100644 index 00000000..698ab3da Binary files /dev/null and b/resources/inspire-fixup/icons/themes/bu.png differ diff --git a/resources/inspire-fixup/icons/themes/cp.png b/resources/inspire-fixup/icons/themes/cp.png new file mode 100644 index 00000000..8ebdf7fb Binary files /dev/null and b/resources/inspire-fixup/icons/themes/cp.png differ diff --git a/resources/inspire-fixup/icons/themes/ef.png b/resources/inspire-fixup/icons/themes/ef.png new file mode 100644 index 00000000..4e99850d Binary files /dev/null and b/resources/inspire-fixup/icons/themes/ef.png differ diff --git a/resources/inspire-fixup/icons/themes/el.png b/resources/inspire-fixup/icons/themes/el.png new file mode 100644 index 00000000..5835ac71 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/el.png differ diff --git a/resources/inspire-fixup/icons/themes/er.png b/resources/inspire-fixup/icons/themes/er.png new file mode 100644 index 00000000..c68fb550 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/er.png differ diff --git a/resources/inspire-fixup/icons/themes/ge.png b/resources/inspire-fixup/icons/themes/ge.png new file mode 100644 index 00000000..d52464e2 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/ge.png differ diff --git a/resources/inspire-fixup/icons/themes/gg.png b/resources/inspire-fixup/icons/themes/gg.png new file mode 100644 index 00000000..cd8a60eb Binary files /dev/null and b/resources/inspire-fixup/icons/themes/gg.png differ diff --git a/resources/inspire-fixup/icons/themes/gn.png b/resources/inspire-fixup/icons/themes/gn.png new file mode 100644 index 00000000..ca63c982 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/gn.png differ diff --git a/resources/inspire-fixup/icons/themes/hb.png b/resources/inspire-fixup/icons/themes/hb.png new file mode 100644 index 00000000..14fcf1f7 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/hb.png differ diff --git a/resources/inspire-fixup/icons/themes/hh.png b/resources/inspire-fixup/icons/themes/hh.png new file mode 100644 index 00000000..1212422e Binary files /dev/null and b/resources/inspire-fixup/icons/themes/hh.png differ diff --git a/resources/inspire-fixup/icons/themes/hy.png b/resources/inspire-fixup/icons/themes/hy.png new file mode 100644 index 00000000..aca166dc Binary files /dev/null and b/resources/inspire-fixup/icons/themes/hy.png differ diff --git a/resources/inspire-fixup/icons/themes/lc.png b/resources/inspire-fixup/icons/themes/lc.png new file mode 100644 index 00000000..8b56e248 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/lc.png differ diff --git a/resources/inspire-fixup/icons/themes/lu.png b/resources/inspire-fixup/icons/themes/lu.png new file mode 100644 index 00000000..940aaa4a Binary files /dev/null and b/resources/inspire-fixup/icons/themes/lu.png differ diff --git a/resources/inspire-fixup/icons/themes/mf.png b/resources/inspire-fixup/icons/themes/mf.png new file mode 100644 index 00000000..5ebd35cb Binary files /dev/null and b/resources/inspire-fixup/icons/themes/mf.png differ diff --git a/resources/inspire-fixup/icons/themes/mr.png b/resources/inspire-fixup/icons/themes/mr.png new file mode 100644 index 00000000..e0cfdd8f Binary files /dev/null and b/resources/inspire-fixup/icons/themes/mr.png differ diff --git a/resources/inspire-fixup/icons/themes/nz.png b/resources/inspire-fixup/icons/themes/nz.png new file mode 100644 index 00000000..728e422e Binary files /dev/null and b/resources/inspire-fixup/icons/themes/nz.png differ diff --git a/resources/inspire-fixup/icons/themes/of.png b/resources/inspire-fixup/icons/themes/of.png new file mode 100644 index 00000000..8f39317c Binary files /dev/null and b/resources/inspire-fixup/icons/themes/of.png differ diff --git a/resources/inspire-fixup/icons/themes/oi.png b/resources/inspire-fixup/icons/themes/oi.png new file mode 100644 index 00000000..aaeed2cd Binary files /dev/null and b/resources/inspire-fixup/icons/themes/oi.png differ diff --git a/resources/inspire-fixup/icons/themes/pd.png b/resources/inspire-fixup/icons/themes/pd.png new file mode 100644 index 00000000..4a962b46 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/pd.png differ diff --git a/resources/inspire-fixup/icons/themes/pf.png b/resources/inspire-fixup/icons/themes/pf.png new file mode 100644 index 00000000..89805da2 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/pf.png differ diff --git a/resources/inspire-fixup/icons/themes/ps.png b/resources/inspire-fixup/icons/themes/ps.png new file mode 100644 index 00000000..5abad798 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/ps.png differ diff --git a/resources/inspire-fixup/icons/themes/rs.png b/resources/inspire-fixup/icons/themes/rs.png new file mode 100644 index 00000000..06234789 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/rs.png differ diff --git a/resources/inspire-fixup/icons/themes/sd.png b/resources/inspire-fixup/icons/themes/sd.png new file mode 100644 index 00000000..eaf30d63 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/sd.png differ diff --git a/resources/inspire-fixup/icons/themes/so.png b/resources/inspire-fixup/icons/themes/so.png new file mode 100644 index 00000000..d88ce5b7 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/so.png differ diff --git a/resources/inspire-fixup/icons/themes/sr.png b/resources/inspire-fixup/icons/themes/sr.png new file mode 100644 index 00000000..d11e0bc1 Binary files /dev/null and b/resources/inspire-fixup/icons/themes/sr.png differ diff --git a/resources/inspire-fixup/icons/themes/su.png b/resources/inspire-fixup/icons/themes/su.png new file mode 100644 index 00000000..48fa7eac Binary files /dev/null and b/resources/inspire-fixup/icons/themes/su.png differ diff --git a/resources/inspire-fixup/icons/themes/tn.png b/resources/inspire-fixup/icons/themes/tn.png new file mode 100644 index 00000000..f16ecb4c Binary files /dev/null and b/resources/inspire-fixup/icons/themes/tn.png differ diff --git a/resources/inspire-fixup/icons/themes/us.png b/resources/inspire-fixup/icons/themes/us.png new file mode 100644 index 00000000..29fc03ea Binary files /dev/null and b/resources/inspire-fixup/icons/themes/us.png differ diff --git a/resources/xplanung-fixup/icons/xplanung.png b/resources/xplanung-fixup/icons/xplanung.png new file mode 100644 index 00000000..88953d3b Binary files /dev/null and b/resources/xplanung-fixup/icons/xplanung.png differ diff --git a/updatesite/build.gradle b/updatesite/build.gradle index 4e331b41..4537faf6 100644 --- a/updatesite/build.gradle +++ b/updatesite/build.gradle @@ -86,6 +86,9 @@ platform { bnd { // set release version as bundle version version = releaseVersion + // only resources contained, don't export packages + instruction 'Export-Package', '' + instruction 'Private-Package', '*' } }