You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "John Poth (JIRA)" <ji...@apache.org> on 2017/07/03 10:58:00 UTC

[jira] [Updated] (KARAF-5235) Remove null values from AssemblyMojo configuration

     [ https://issues.apache.org/jira/browse/KARAF-5235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

John Poth updated KARAF-5235:
-----------------------------
    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:

{code}
	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)
{code}

I've updated a [test|https://github.com/apache/karaf/pull/326/commits/46a7e81b0d6cc2d9b6b3587e33d843572bb3b25b#diff-856de06d8db7e7a4f3e6edc7ce673166R82] 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!

  was:
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:

{code}
	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)
{code}


> Remove null values from AssemblyMojo configuration
> --------------------------------------------------
>
>                 Key: KARAF-5235
>                 URL: https://issues.apache.org/jira/browse/KARAF-5235
>             Project: Karaf
>          Issue Type: Improvement
>          Components: karaf-tooling
>            Reporter: John Poth
>
> 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:
> {code}
> 	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)
> {code}
> I've updated a [test|https://github.com/apache/karaf/pull/326/commits/46a7e81b0d6cc2d9b6b3587e33d843572bb3b25b#diff-856de06d8db7e7a4f3e6edc7ce673166R82] 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!



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)