Commit Diff


commit - 337800def761af49af3dc01f54519e3ff1bd7272
commit + ced37db3167e5a43b6ef7d2b84d92275ea17644f
blob - e384bf04f35cf4d417c9f8ca6706c261c262aeec
blob + 3982557fa58957c4f03a2de604181900626d2405
--- gradle/distribution.gradle
+++ gradle/distribution.gradle
@@ -116,8 +116,8 @@ def provisionKaraf = {
     from project(":${project.name}-branding-console").jar
   }
   into ('deploy') {
-    // Generate KAR for custom karaf distribution
-    from generateKar
+    // Generate features to deploy at system start
+    from generateFeatures
   }
   into ('system') {
     // Generate repo for custom karaf distribution suitable for offline deployment
blob - 95b64ec7c94b32f54ec53925c35be7d6181f07d1
blob + d1f90ab65887edd20f8b150d9c5a2f9e81476c81
--- gradle/karaf.gradle
+++ gradle/karaf.gradle
@@ -22,6 +22,11 @@ buildscript {
   }
 }
 
+static String depToMavenPath(Provider<MinimalExternalModuleDependency> depProvider, String classifier) {
+  def dep = depProvider.get()
+  return "mvn:${dep.module.group}/${dep.module.name}/${dep.version}/${classifier}"
+}
+
 apply plugin: com.github.lburgazzoli.gradle.plugin.karaf.KarafPlugin
 
 configurations {
@@ -42,11 +47,11 @@ dependencies {
 karaf {
   features {
     xsdVersion = '1.6.0'
-    repository "mvn:${libs.apache.karaf.feature.keycloak.get().toString().replace(':', '/')}/xml/features"
-    repository "mvn:${libs.apache.karaf.feature.hawtio.get().toString().replace(':', '/')}/xml/features"
-    repository "mvn:${libs.apache.karaf.feature.aries.get().toString().replace(':', '/')}/xml"
-    repository "mvn:${libs.apache.karaf.feature.camel.get().toString().replace(':', "/")}/xml/features"
-    repository "mvn:${libs.apache.karaf.feature.cxf.get().toString().replace(':', "/")}/xml/features"
+    repository depToMavenPath(libs.apache.karaf.feature.keycloak, "xml/features")
+    repository depToMavenPath(libs.apache.karaf.feature.hawtio, "xml/features")
+    repository depToMavenPath(libs.apache.karaf.feature.aries, "xml")
+    repository depToMavenPath(libs.apache.karaf.feature.camel, "xml/features")
+    repository depToMavenPath(libs.apache.karaf.feature.cxf, "xml/features")
     feature {
       name = project.name
       description = project.description
@@ -74,10 +79,8 @@ karaf {
 }
 
 tasks.register('generateOfflineRepo') {
-  dependsOn generateKar
-  def descriptor = layout.buildDirectory.file("karaf/features/${project.name}-${project.version}-features.xml")
-  def repository = layout.buildDirectory.dir('karaf/repo-offline')
-  def url = layout.buildDirectory.dir('karaf/repo')
+  dependsOn generateRepo
+  outputs.dir(layout.buildDirectory.dir('karaf/repo-offline'))
   doLast {
     mavenexec {
       goals 'clean', 'install'
@@ -86,13 +89,12 @@ tasks.register('generateOfflineRepo') {
         'artifactId'         : project.name,
         'version'            : project.version,
         'karafVersion'       : libs.versions.apache.karaf.get(),
-        'url'                : url.get().toString(),
-        'descriptor'         : descriptor.get().toString(),
+        'url'                : tasks.generateRepo.outputs.files.singleFile.path,
+        'descriptor'         : tasks.generateFeatures.outputs.files.singleFile.path,
         'feature'            : project.name,
-        'repository'         : repository.get().toString()
+        'repository'         : outputs.files.singleFile.path
       ])
       quiet true
     }
   }
-  outputs.dir(repository)
 }
blob - d32ba6518d6addedf8e50399ab3aa45c64293dc2
blob + 7c13544c0a2a0783ed45af1244647d0acec851f5
--- gradle/libs.versions.toml
+++ gradle/libs.versions.toml
@@ -108,6 +108,8 @@ apache-karaf-feature-hawtio = { module = 'io.hawt:hawt
 apache-karaf-jaas-config = { module = 'org.apache.karaf.jaas:org.apache.karaf.jaas.config', version.ref = 'apache-karaf' }
 apache-karaf-shell-core = { module = 'org.apache.karaf.shell:org.apache.karaf.shell.core', version.ref = 'apache-karaf' }
 apache-karaf-webconsole-console = { module = 'org.apache.karaf.webconsole:org.apache.karaf.webconsole.console', version.ref = 'apache-karaf' }
+camel-core = { module = 'org.apache.camel:camel-core', version.ref = 'camel' }
+camel-core-osgi = { module = 'org.apache.camel.karaf:camel-core-osgi', version.ref = 'camel' }
 commons-io = { module = 'commons-io:commons-io', version.ref = 'commons-io' }
 cxf-karaf-commands = { module = 'org.apache.cxf.karaf:cxf-karaf-commands', version.ref = 'cxf' }
 cxf-rt-rs-service-description-openapi-v3 = { module = 'org.apache.cxf:cxf-rt-rs-service-description-openapi-v3', version.ref = 'cxf' }