[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [p2-dev] p2 publisher ant task NPE when it runs outside Eclipse IDE

Coming from a Maven background, you should take a look at the Tycho plugins: tycho.sonatype.org (or http://www.eclipse.org/proposals/tycho/)
It has the ability to build p2 repositories out of the box.

On 2010-04-06, at 5:31 AM, Dmytro Pishchukhin wrote:

> Hello Everybody,
> 
> I'd like to run p2 publisher ant task (o.e.e.i.p.p.a.FeaturesAndBundlesPublisherTask) to publish some of our project bundles to p2 repositories. 
> 
> Our project is based on Maven and we build our OSGi bundles outside any IDE from command line (or on our build machine with Apache Continuum). 
> 
> I've tried to develop Ant script inside maven-antrun-plugin to publish our OSGi bundles. I added such libraries for p2-publisher ant task classpath:
> - osgi core JAR
> - osgi cmpn JAR
> - org.eclipse.equinox.common_3.6.0.v20100222.jar
> - org.eclipse.equinox.p2.core_2.0.0.v20100304.jar
> - org.eclipse.equinox.p2.metadata_2.0.0.v20100311-1843.jar
> - org.eclipse.equinox.p2.publisher_1.1.0.v20100310-1731.jar
> - org.eclipse.equinox.p2.repository_2.0.0.v20100310-1731.jar
> - publisher-ant.jar 
> 
> The NPE is thrown during ant start:
> #### Exception ####
> org.apache.maven.lifecycle.LifecycleExecutionException: An Ant BuildException has occured: java.lang.NullPointerException 
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719) 
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) 
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) 
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) 
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) 
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) 
>         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 
>         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 
>         at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 
>         at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
>         at java.lang.reflect.Method.invoke(Method.java:597) 
>         at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
>         at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
>         at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
>         at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 
> Caused by: org.apache.maven.plugin.MojoExecutionException: An Ant BuildException has occured: java.lang.NullPointerException 
>         at org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(AbstractAntMojo.java:131) 
>         at org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:98) 
>         at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) 
>         ... 17 more 
> Caused by: java.lang.NullPointerException 
>         at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:116) 
>         at org.apache.tools.ant.Task.perform(Task.java:348) 
>         at org.apache.tools.ant.Target.execute(Target.java:357) 
>         at org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(AbstractAntMojo.java:118) 
>         ... 20 more 
> Caused by: java.lang.NullPointerException 
>         at org.eclipse.equinox.p2.publisher.Publisher.getService(Publisher.java:166) 
>         at org.eclipse.equinox.p2.publisher.Publisher.loadArtifactRepository(Publisher.java:140) 
>         at org.eclipse.equinox.p2.publisher.Publisher.createArtifactRepository(Publisher.java:105) 
>         at org.eclipse.equinox.internal.p2.publisher.ant.AbstractPublishTask.initializeRepositories(AbstractPublishTask.java:115) 
>         at org.eclipse.equinox.internal.p2.publisher.ant.FeaturesAndBundlesPublisherTask.execute(FeaturesAndBundlesPublisherTask.java:30) 
>         at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) 
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
>         at java.lang.reflect.Method.invoke(Method.java:597) 
>         at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
>         ... 23 more 
> #### Exception ####
> 
> 
> After stack trace analyzing I found that the cause of error is missing of IProvisioningAgent service in BundleContext. BundleContext is not initialized also as any OSGi framework is started.
> 
> Questions:
> 1. Is it possible to run p2 publisher ant tasks outside Eclipse IDE?
> 2. Are any other ways to publish bundles except Eclipse IDE Wizards and p2 ant scripts?
> 
> Thank you in advance.
> 
> 
> Best regards,
> Dmytro Pishchukhin
> _______________________________________________
> p2-dev mailing list
> p2-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/p2-dev