Uploaded image for project: 'Karaf'
  1. Karaf
  2. KARAF-5235

Remove null values from AssemblyMojo configuration

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.2.0.M1
    • Component/s: karaf
    • Labels:
      None

      Description

      When building Karaf distributions, it would be nice to be able to tweak the distribution using Maven profiles to add a feature or a bundle (etc..). However if the Maven profile which adds these bundles/features is not active we currently get an NPE:

      	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
      	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
      	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
      	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
      	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
      	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
      	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
      	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
      	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
      	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
      	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
      	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
      	at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
      	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
      	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
      	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
      Caused by: org.apache.maven.plugin.MojoExecutionException: Unable to build assembly
      	at org.apache.karaf.tooling.AssemblyMojo.execute(AssemblyMojo.java:268)
      	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
      	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
      	... 20 more
      Caused by: java.lang.NullPointerException
      	at org.apache.felix.utils.properties.ConfigurationHandler.writeValue(ConfigurationHandler.java:724)
      	at org.apache.felix.utils.properties.ConfigurationHandler.write(ConfigurationHandler.java:228)
      	at org.apache.felix.utils.properties.TypedProperties.convertToString(TypedProperties.java:345)
      	at org.apache.felix.utils.properties.TypedProperties.put(TypedProperties.java:172)
      	at org.apache.felix.utils.properties.TypedProperties.put(TypedProperties.java:52)
      	at org.apache.karaf.profile.impl.ProfileBuilderImpl.addAgentConfiguration(ProfileBuilderImpl.java:279)
      	at org.apache.karaf.profile.impl.ProfileBuilderImpl.setBundles(ProfileBuilderImpl.java:198)
      	at org.apache.karaf.profile.assembly.Builder.generateProfile(Builder.java:1392)
      	at org.apache.karaf.profile.assembly.Builder.doGenerateAssembly(Builder.java:556)
      	at org.apache.karaf.profile.assembly.Builder.generateAssembly(Builder.java:446)
      	at org.apache.karaf.tooling.AssemblyMojo.doExecute(AssemblyMojo.java:506)
      	at org.apache.karaf.tooling.AssemblyMojo.execute(AssemblyMojo.java:262)
      

      I've updated a test to better illustrate the enhancement.

      The affected properties are:

      • startupRepositories
      • bootRepositories
      • installedRepositories
      • startupBundles
      • bootBundles
      • installedBundles
      • blacklistedBundles
      • startupFeatures
      • bootFeatures
      • installedFeatures
      • blacklistedFeatures
      • startupProfiles
      • bootProfiles
      • installedProfiles
      • blacklistedProfiles
      • blacklistedRepositories

      Thanks!

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                jbonofre Jean-Baptiste Onofré
                Reporter:
                jpoth John Poth
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: